16423
16423
\indexlibrary{\idxcode{remove_const}}%
16424
16424
\tcode{template <class T>\br
16425
16425
struct remove_const;} &
16426
- The member typedef \tcode{type} shall name
16426
+ The member typedef \tcode{type} names
16427
16427
the same type as \tcode{T}
16428
16428
except that any top-level const-qualifier has been removed.
16429
16429
\begin{example} \tcode{remove_const_t<const volatile int>} evaluates
16433
16433
\indexlibrary{\idxcode{remove_volatile}}%
16434
16434
\tcode{template <class T>\br
16435
16435
struct remove_volatile;} &
16436
- The member typedef \tcode{type} shall name
16436
+ The member typedef \tcode{type} names
16437
16437
the same type as \tcode{T}
16438
16438
except that any top-level volatile-qualifier has been removed.
16439
16439
\begin{example} \tcode{remove_volatile_t<const volatile int>}
@@ -16454,22 +16454,22 @@
16454
16454
\tcode{template <class T>\br
16455
16455
struct add_const;} &
16456
16456
If \tcode{T} is a reference, function, or top-level const-qualified
16457
- type, then \tcode{type} shall name
16457
+ type, then \tcode{type} names
16458
16458
the same type as \tcode{T}, otherwise
16459
16459
\tcode{T const}. \\ \rowsep
16460
16460
16461
16461
\indexlibrary{\idxcode{add_volatile}}%
16462
16462
\tcode{template <class T>\br
16463
16463
struct add_volatile;} &
16464
16464
If \tcode{T} is a reference, function, or top-level volatile-qualified
16465
- type, then \tcode{type} shall name
16465
+ type, then \tcode{type} names
16466
16466
the same type as \tcode{T}, otherwise
16467
16467
\tcode{T volatile}. \\ \rowsep
16468
16468
16469
16469
\indexlibrary{\idxcode{add_cv}}%
16470
16470
\tcode{template <class T>\br
16471
16471
struct add_cv;} &
16472
- The member typedef \tcode{type} shall name
16472
+ The member typedef \tcode{type} names
16473
16473
the same type as
16474
16474
\tcode{add_const_t<add_volatile_t<T>{>}}. \\
16475
16475
\end{libreqtab2a}
@@ -16489,15 +16489,15 @@
16489
16489
\tcode{template <class T>\br
16490
16490
struct remove_reference;} &
16491
16491
If \tcode{T} has type ``reference to \tcode{T1}'' then the
16492
- member typedef \tcode{type} shall name \tcode{T1};
16493
- otherwise, \tcode{type} shall name \tcode{T}.\\ \rowsep
16492
+ member typedef \tcode{type} names \tcode{T1};
16493
+ otherwise, \tcode{type} names \tcode{T}.\\ \rowsep
16494
16494
16495
16495
\indexlibrary{\idxcode{add_lvalue_reference}}%
16496
16496
\tcode{template <class T>\br
16497
16497
struct add_lvalue_reference;} &
16498
16498
If \tcode{T} names a referenceable type (\ref{defns.referenceable}) then
16499
- the member typedef \tcode{type} shall name \tcode{T\&};
16500
- otherwise, \tcode{type} shall name \tcode{T}.
16499
+ the member typedef \tcode{type} names \tcode{T\&};
16500
+ otherwise, \tcode{type} names \tcode{T}.
16501
16501
\begin{note}
16502
16502
This rule reflects the semantics of reference collapsing~(\ref{dcl.ref}).
16503
16503
\end{note}\\ \rowsep
16506
16506
\tcode{template <class T>}\br
16507
16507
\tcode{struct add_rvalue_reference;} &
16508
16508
If \tcode{T} names a referenceable type then
16509
- the member typedef \tcode{type} shall name \tcode{T\&\&};
16510
- otherwise, \tcode{type} shall name \tcode{T}.
16509
+ the member typedef \tcode{type} names \tcode{T\&\&};
16510
+ otherwise, \tcode{type} names \tcode{T}.
16511
16511
\begin{note} This rule reflects the semantics of reference collapsing~(\ref{dcl.ref}).
16512
16512
For example, when a type \tcode{T} names a type \tcode{T1\&}, the type
16513
16513
\tcode{add_rvalue_reference_t<T>} is not an rvalue reference.
@@ -16529,11 +16529,11 @@
16529
16529
\tcode{struct make_signed;} &
16530
16530
If \tcode{T} names a (possibly cv-qualified) signed integer
16531
16531
type~(\ref{basic.fundamental}) then the member typedef
16532
- \tcode{type} shall name the type \tcode{T}; otherwise,
16532
+ \tcode{type} names the type \tcode{T}; otherwise,
16533
16533
if \tcode{T} names a (possibly cv-qualified) unsigned integer
16534
- type then \tcode{type} shall name the corresponding
16534
+ type then \tcode{type} names the corresponding
16535
16535
signed integer type, with the same cv-qualifiers as \tcode{T};
16536
- otherwise, \tcode{type} shall name the signed integer type with smallest
16536
+ otherwise, \tcode{type} names the signed integer type with smallest
16537
16537
rank~(\ref{conv.rank}) for which
16538
16538
\tcode{sizeof(T) == sizeof(type)}, with the same
16539
16539
cv-qualifiers as \tcode{T}.\br
@@ -16546,11 +16546,11 @@
16546
16546
\tcode{struct make_unsigned;} &
16547
16547
If \tcode{T} names a (possibly cv-qualified) unsigned integer
16548
16548
type~(\ref{basic.fundamental}) then the member typedef
16549
- \tcode{type} shall name the type \tcode{T}; otherwise,
16549
+ \tcode{type} names the type \tcode{T}; otherwise,
16550
16550
if \tcode{T} names a (possibly cv-qualified) signed integer
16551
- type then \tcode{type} shall name the corresponding
16551
+ type then \tcode{type} names the corresponding
16552
16552
unsigned integer type, with the same cv-qualifiers as \tcode{T};
16553
- otherwise, \tcode{type} shall name the unsigned integer type with smallest
16553
+ otherwise, \tcode{type} names the unsigned integer type with smallest
16554
16554
rank~(\ref{conv.rank}) for which
16555
16555
\tcode{sizeof(T) == sizeof(type)}, with the same
16556
16556
cv-qualifiers as \tcode{T}.\br
@@ -16624,16 +16624,16 @@
16624
16624
struct remove_pointer;} &
16625
16625
If \tcode{T} has type ``(possibly cv-qualified) pointer
16626
16626
to \tcode{T1}'' then the member typedef \tcode{type}
16627
- shall name \tcode{T1}; otherwise, it shall name \tcode{T}.\\ \rowsep
16627
+ names \tcode{T1}; otherwise, it names \tcode{T}.\\ \rowsep
16628
16628
16629
16629
\indexlibrary{\idxcode{add_pointer}}%
16630
16630
\tcode{template <class T>\br
16631
16631
struct add_pointer;} &
16632
16632
If \tcode{T} names a referenceable type (\ref{defns.referenceable}) or a
16633
16633
\cv{}~\tcode{void} type then
16634
- the member typedef \tcode{type} shall name the same type as
16634
+ the member typedef \tcode{type} names the same type as
16635
16635
\tcode{remove_reference_t<T>*};
16636
- otherwise, \tcode{type} shall name \tcode{T}. \\
16636
+ otherwise, \tcode{type} names \tcode{T}. \\
16637
16637
\end{libreqtab2a}
16638
16638
\clearpage
16639
16639
16717
16717
\tcode{template <class T>}\br
16718
16718
\tcode{struct underlying_type;}
16719
16719
&
16720
- The member typedef \tcode{type} shall name the underlying type
16720
+ The member typedef \tcode{type} names the underlying type
16721
16721
of \tcode{T}.\br
16722
16722
\requires{} \tcode{T} shall be a complete enumeration type~(\ref{dcl.enum}) \\ \rowsep
16723
16723
16728
16728
&
16729
16729
If the expression \tcode{\textit{INVOKE}(declval<Fn>(), declval<ArgTypes>()...)}
16730
16730
is well formed when treated as an unevaluated operand (Clause~\ref{expr}),
16731
- the member typedef \tcode{type} shall name the type
16731
+ the member typedef \tcode{type} names the type
16732
16732
\tcode{decltype(\textit{INVOKE}(declval<Fn>(), declval<ArgTypes>()...))};
16733
16733
otherwise, there shall be no member \tcode{type}. Access checking is
16734
16734
performed as if in a context unrelated to \tcode{Fn} and
0 commit comments