29 Numerics library [numerics]

29.5 Complex numbers [complex.numbers]

29.5.9 Additional overloads [cmplx.over]

Следующие шаблоны функций должны иметь дополнительные перегрузки:

arg                   norm
conj                  proj
imag                  real

Дополнительных перегрузок должно быть достаточно для обеспечения:

  1. 1.Если аргумент имеет тип long double, он фактически приводится к типу complex<long double>.

  2. 2.В противном случае, если аргумент имеет тип double или целочисленный тип, он эффективно приводится к complex<​double>.

  3. 3.В противном случае, если аргумент имеет тип float, он фактически приводится к типу complex<float>.

Шаблон функции pow должен иметь дополнительные перегрузки, достаточные для обеспечения вызова хотя бы с одним аргументом типа complex<T>:

  1. 1.Если какой-либо из аргументов имеет тип complex<long double> или тип long double, то оба аргумента эффективно приводятся к complex<long double>.

  2. 2.В противном случае, если любой из аргументов имеет тип complex<double>, doubleили целочисленный тип, то оба аргумента эффективно приводятся к complex<double>.

  3. 3.В противном случае, если у любого из аргументов есть тип complex<float> или float, то оба аргумента эффективно приводятся к complex<float>.