constexpr complex(const T& re = T(), const T& im = T());
template<class X> constexpr explicit(see below) complex(const complex<X>& other);
constexpr T real() const;
constexpr void real(T val);
constexpr T imag() const;
constexpr void imag(T val);