tmp/tmp39hq6im_/{from.md → to.md}
RENAMED
|
@@ -33,11 +33,11 @@ integral promotions [[conv.prom]] and the usual arithmetic conversions
|
|
| 33 |
[[expr.arith.conv]]. — *end note*]
|
| 34 |
|
| 35 |
Every floating-point type has a *floating-point conversion rank* defined
|
| 36 |
as follows:
|
| 37 |
|
| 38 |
-
- The rank of a floating
|
| 39 |
floating-point type whose set of values is a proper subset of the set
|
| 40 |
of values of `T`.
|
| 41 |
- The rank of `long double` is greater than the rank of `double`, which
|
| 42 |
is greater than the rank of `float`.
|
| 43 |
- Two extended floating-point types with the same set of values have
|
|
@@ -45,11 +45,19 @@ as follows:
|
|
| 45 |
- An extended floating-point type with the same set of values as exactly
|
| 46 |
one cv-unqualified standard floating-point type has a rank equal to
|
| 47 |
the rank of that standard floating-point type.
|
| 48 |
- An extended floating-point type with the same set of values as more
|
| 49 |
than one cv-unqualified standard floating-point type has a rank equal
|
| 50 |
-
to the rank of `double`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 51 |
|
| 52 |
[*Note 2*: The conversion ranks of floating-point types `T1` and `T2`
|
| 53 |
are unordered if the set of values of `T1` is neither a subset nor a
|
| 54 |
superset of the set of values of `T2`. This can happen when one type has
|
| 55 |
both a larger range and a lower precision than the other. — *end note*]
|
|
|
|
| 33 |
[[expr.arith.conv]]. — *end note*]
|
| 34 |
|
| 35 |
Every floating-point type has a *floating-point conversion rank* defined
|
| 36 |
as follows:
|
| 37 |
|
| 38 |
+
- The rank of a floating-point type `T` is greater than the rank of any
|
| 39 |
floating-point type whose set of values is a proper subset of the set
|
| 40 |
of values of `T`.
|
| 41 |
- The rank of `long double` is greater than the rank of `double`, which
|
| 42 |
is greater than the rank of `float`.
|
| 43 |
- Two extended floating-point types with the same set of values have
|
|
|
|
| 45 |
- An extended floating-point type with the same set of values as exactly
|
| 46 |
one cv-unqualified standard floating-point type has a rank equal to
|
| 47 |
the rank of that standard floating-point type.
|
| 48 |
- An extended floating-point type with the same set of values as more
|
| 49 |
than one cv-unqualified standard floating-point type has a rank equal
|
| 50 |
+
to the rank of `double`.\begin{tailnote}
|
| 51 |
+
The treatment of \texttt{std::float64_t} differs from
|
| 52 |
+
that of the analogous \texttt{\_Float64} in C,
|
| 53 |
+
for example on platforms where all of
|
| 54 |
+
\texttt{\texttt{long} \texttt{double}},
|
| 55 |
+
\texttt{double}, and
|
| 56 |
+
\texttt{std::float64_t}
|
| 57 |
+
have the same set of values (see ISO/IEC 9899:2018 (C)H.4.3).
|
| 58 |
+
\end{tailnote}
|
| 59 |
|
| 60 |
[*Note 2*: The conversion ranks of floating-point types `T1` and `T2`
|
| 61 |
are unordered if the set of values of `T1` is neither a subset nor a
|
| 62 |
superset of the set of values of `T2`. This can happen when one type has
|
| 63 |
both a larger range and a lower precision than the other. — *end note*]
|