template<class T> constexpr complex<T> acos(const complex<T>& x);
template<class T> constexpr complex<T> asin(const complex<T>& x);
template<class T> constexpr complex<T> atan(const complex<T>& x);
template<class T> constexpr complex<T> acosh(const complex<T>& x);
template<class T> constexpr complex<T> asinh(const complex<T>& x);
template<class T> constexpr complex<T> atanh(const complex<T>& x);
template<class T> constexpr complex<T> cos(const complex<T>& x);
template<class T> constexpr complex<T> cosh(const complex<T>& x);
template<class T> constexpr complex<T> exp(const complex<T>& x);
template<class T> constexpr complex<T> log(const complex<T>& x);
template<class T> constexpr complex<T> log10(const complex<T>& x);
template<class T> constexpr complex<T> pow(const complex<T>& x, const complex<T>& y);
template<class T> constexpr complex<T> pow(const complex<T>& x, const T& y);
template<class T> constexpr complex<T> pow(const T& x, const complex<T>& y);
template<class T> constexpr complex<T> sin(const complex<T>& x);
template<class T> constexpr complex<T> sinh(const complex<T>& x);
template<class T> constexpr complex<T> sqrt(const complex<T>& x);
template<class T> constexpr complex<T> tan(const complex<T>& x);
template<class T> constexpr complex<T> tanh(const complex<T>& x);