From Jason Turner

[cmplx.over]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpjuz8e_9_/{from.md → to.md} +11 -9
tmp/tmpjuz8e_9_/{from.md → to.md} RENAMED
@@ -6,26 +6,28 @@ The following function templates shall have additional overloads:
6
  arg norm
7
  conj proj
8
  imag real
9
  ```
10
 
 
 
11
  The additional overloads shall be sufficient to ensure:
12
 
13
- 1. If the argument has type `long double`, then it is effectively cast
14
- to `complex<long double>`.
15
- 2. Otherwise, if the argument has type `double` or an integer type,
16
- then it is effectively cast to `complex<{}double>`.
17
- 3. Otherwise, if the argument has type `float`, then it is effectively
18
  cast to `complex<float>`.
19
 
20
  Function template `pow` shall have additional overloads sufficient to
21
  ensure, for a call with at least one argument of type `complex<T>`:
22
 
23
- 1. If either argument has type `complex<long double>` or type `long
24
  double`, then both arguments are effectively cast to
25
  `complex<long double>`.
26
- 2. Otherwise, if either argument has type `complex<double>`, `double`,
27
- or an integer type, then both arguments are effectively cast to
28
  `complex<double>`.
29
- 3. Otherwise, if either argument has type `complex<float>` or `float`,
30
  then both arguments are effectively cast to `complex<float>`.
31
 
 
6
  arg norm
7
  conj proj
8
  imag real
9
  ```
10
 
11
+ where `norm`, `conj`, `imag`, and `real` are `constexpr` overloads.
12
+
13
  The additional overloads shall be sufficient to ensure:
14
 
15
+ - If the argument has type `long double`, then it is effectively cast to
16
+ `complex<long double>`.
17
+ - Otherwise, if the argument has type `double` or an integer type, then
18
+ it is effectively cast to `complex<{}double>`.
19
+ - Otherwise, if the argument has type `float`, then it is effectively
20
  cast to `complex<float>`.
21
 
22
  Function template `pow` shall have additional overloads sufficient to
23
  ensure, for a call with at least one argument of type `complex<T>`:
24
 
25
+ - If either argument has type `complex<long double>` or type `long
26
  double`, then both arguments are effectively cast to
27
  `complex<long double>`.
28
+ - Otherwise, if either argument has type `complex<double>`, `double`, or
29
+ an integer type, then both arguments are effectively cast to
30
  `complex<double>`.
31
+ - Otherwise, if either argument has type `complex<float>` or `float`,
32
  then both arguments are effectively cast to `complex<float>`.
33