[cmplx.over] # 29 Numerics library [[numerics]](./#numerics) ## 29.4 Complex numbers [[complex.numbers]](complex.numbers#cmplx.over) ### 29.4.10 Additional overloads [cmplx.over] [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L1173) The following function templates have additional constexpr overloads:arg norm conj proj imag real [2](#2) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L1186) The additional constexpr overloads are sufficient to ensure: - [(2.1)](#2.1) If the argument has a floating-point type T, then it is effectively cast to complex[.](#2.1.sentence-1) - [(2.2)](#2.2) Otherwise, if the argument has integer type, then it is effectively cast to complex[.](#2.2.sentence-1) [3](#3) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L1198) Function template pow has additional constexpr overloads sufficient to ensure, for a call with one argument of type complex and the other argument of type T2 or complex, both arguments are effectively cast to complex>, where T3 isdouble if T2 is an integer type and T2 otherwise[.](#3.sentence-1) If common_type_t is not well-formed, then the program is ill-formed[.](#3.sentence-2)