[complex] # 29 Numerics library [[numerics]](./#numerics) ## 29.4 Complex numbers [[complex.numbers]](complex.numbers#complex) ### 29.4.3 Class template complex [complex] [🔗](#lib:complex) namespace std {template class complex {public:using value_type = T; constexpr complex(const T& re = T(), const T& im = T()); constexpr complex(const complex&) = default; template constexpr explicit(*see below*) complex(const complex&); constexpr T real() const; constexpr void real(T); constexpr T imag() const; constexpr void imag(T); constexpr complex& operator= (const T&); constexpr complex& operator+=(const T&); constexpr complex& operator-=(const T&); constexpr complex& operator*=(const T&); constexpr complex& operator/=(const T&); constexpr complex& operator=(const complex&); template constexpr complex& operator= (const complex&); template constexpr complex& operator+=(const complex&); template constexpr complex& operator-=(const complex&); template constexpr complex& operator*=(const complex&); template constexpr complex& operator/=(const complex&); };} [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L347) The classcomplex describes an object that can store the Cartesian components,real() andimag(), of a complex number[.](#1.sentence-1)