|
410 | 410 |
|
411 | 411 | \pnum
|
412 | 412 | The library provides a class template that can represent an integer sequence.
|
413 |
| -When used as an argument to a function template the parameter pack defining the |
| 413 | +When used as an argument to a function template the template parameter pack defining the |
414 | 414 | sequence can be deduced and used in a pack expansion.
|
415 | 415 | \begin{note}
|
416 | 416 | The \tcode{index_sequence} alias template is provided for the common case of
|
|
1575 | 1575 | \rSec3[tuple.creation]{Tuple creation functions}
|
1576 | 1576 |
|
1577 | 1577 | \pnum
|
1578 |
| -In the function descriptions that follow, the members of a parameter pack \tcode{\placeholder{X}Types} |
| 1578 | +In the function descriptions that follow, the members of a template parameter pack \tcode{\placeholder{X}Types} |
1579 | 1579 | are denoted by \tcode{\placeholder{X}}$_i$ for $i$ in \range{0}{sizeof...(\placeholder{X}Types)} in
|
1580 | 1580 | order, where indexing is zero-based.
|
1581 | 1581 |
|
|
1668 | 1668 | \pnum
|
1669 | 1669 | \requires For all $i$, $\tcode{U}_i$ shall be the type
|
1670 | 1670 | $\cv_i$ \tcode{tuple<$\tcode{Args}_i$...>}, where $\cv_i$ is the (possibly empty) $i^\text{th}$
|
1671 |
| -\grammarterm{cv-qualifier-seq} and $\tcode{Args}_i$ is the parameter pack representing the element |
| 1671 | +\grammarterm{cv-qualifier-seq} and $\tcode{Args}_i$ is the template parameter pack representing the element |
1672 | 1672 | types in $\tcode{U}_i$. Let $\tcode{A}_{ik}$ be the ${k}^\text{th}$ type in $\tcode{Args}_i$. For all
|
1673 | 1673 | $\tcode{A}_{ik}$ the following requirements shall be satisfied:
|
1674 | 1674 | \begin{itemize}
|
|
1696 | 1696 |
|
1697 | 1697 | \pnum
|
1698 | 1698 | \begin{note}
|
1699 |
| -An implementation may support additional types in the parameter |
| 1699 | +An implementation may support additional types in the template parameter |
1700 | 1700 | pack \tcode{Tuples} that support the \tcode{tuple}-like protocol, such as
|
1701 | 1701 | \tcode{pair} and \tcode{array}.
|
1702 | 1702 | \end{note}
|
|
16019 | 16019 | for a \cv{}~\tcode{void} type \tcode{T},
|
16020 | 16020 | \tcode{is_constructible_v<T, Args...>} is \tcode{false},
|
16021 | 16021 | otherwise \seebelow &
|
16022 |
| - \tcode{T} and all types in the parameter pack \tcode{Args} |
| 16022 | + \tcode{T} and all types in the template parameter pack \tcode{Args} |
16023 | 16023 | shall be complete types, \cv{}~\tcode{void},
|
16024 | 16024 | or arrays of unknown bound. \\ \rowsep
|
16025 | 16025 |
|
|
16133 | 16133 | \tcode{Args...>} is \tcode{true} and the variable
|
16134 | 16134 | definition for \tcode{is_constructible}, as defined below, is known to call
|
16135 | 16135 | no operation that is not trivial~(\ref{basic.types}, \ref{special}). &
|
16136 |
| - \tcode{T} and all types in the parameter pack \tcode{Args} shall be complete types, |
| 16136 | + \tcode{T} and all types in the template parameter pack \tcode{Args} shall be complete types, |
16137 | 16137 | \cv{}~\tcode{void}, or arrays of unknown bound. \\ \rowsep
|
16138 | 16138 |
|
16139 | 16139 | \indexlibrary{\idxcode{is_trivially_default_constructible}}%
|
|
16206 | 16206 | variable definition for \tcode{is_constructible}, as defined below, is known not to
|
16207 | 16207 | throw any exceptions\iref{expr.unary.noexcept}.
|
16208 | 16208 | &
|
16209 |
| - \tcode{T} and all types in the parameter pack \tcode{Args} |
| 16209 | + \tcode{T} and all types in the template parameter pack \tcode{Args} |
16210 | 16210 | shall be complete types, \cv{}~\tcode{void},
|
16211 | 16211 | or arrays of unknown bound. \\ \rowsep
|
16212 | 16212 |
|
|
16505 | 16505 | \tcode{struct is_invocable;} &
|
16506 | 16506 | The expression \tcode{\placeholdernc{INVOKE}(declval<Fn>(), declval<ArgTypes>()...)}
|
16507 | 16507 | is well-formed when treated as an unevaluated operand &
|
16508 |
| - \tcode{Fn} and all types in the parameter pack \tcode{ArgTypes} |
| 16508 | + \tcode{Fn} and all types in the template parameter pack \tcode{ArgTypes} |
16509 | 16509 | shall be complete types, \cv{}~\tcode{void}, or
|
16510 | 16510 | arrays of unknown bound. \\ \rowsep
|
16511 | 16511 |
|
|
16514 | 16514 | \tcode{struct is_invocable_r;} &
|
16515 | 16515 | The expression \tcode{\placeholdernc{INVOKE}<R>(declval<Fn>(), declval<ArgTypes>()...)}
|
16516 | 16516 | is well-formed when treated as an unevaluated operand &
|
16517 |
| - \tcode{Fn}, \tcode{R}, and all types in the parameter pack \tcode{ArgTypes} |
| 16517 | + \tcode{Fn}, \tcode{R}, and all types in the template parameter pack \tcode{ArgTypes} |
16518 | 16518 | shall be complete types, \cv{}~\tcode{void}, or
|
16519 | 16519 | arrays of unknown bound. \\ \rowsep
|
16520 | 16520 |
|
|
16524 | 16524 | \tcode{is_invocable_v<}\br\tcode{Fn, ArgTypes...>} is \tcode{true} and
|
16525 | 16525 | the expression \tcode{\placeholdernc{INVOKE}(declval<Fn>(), declval<ArgTypes>()...)}
|
16526 | 16526 | is known not to throw any exceptions &
|
16527 |
| - \tcode{Fn} and all types in the parameter pack \tcode{ArgTypes} |
| 16527 | + \tcode{Fn} and all types in the template parameter pack \tcode{ArgTypes} |
16528 | 16528 | shall be complete types, \cv{}~\tcode{void}, or
|
16529 | 16529 | arrays of unknown bound. \\ \rowsep
|
16530 | 16530 |
|
|
16534 | 16534 | \tcode{is_invocable_r_v<}\br\tcode{R, Fn, ArgTypes...>} is \tcode{true} and
|
16535 | 16535 | the expression \tcode{\placeholdernc{INVOKE}<R>(declval<Fn>(), declval<ArgTypes>()...)}
|
16536 | 16536 | is known not to throw any exceptions &
|
16537 |
| - \tcode{Fn}, \tcode{R}, and all types in the parameter pack \tcode{ArgTypes} |
| 16537 | + \tcode{Fn}, \tcode{R}, and all types in the template parameter pack \tcode{ArgTypes} |
16538 | 16538 | shall be complete types, \cv{}~\tcode{void}, or
|
16539 | 16539 | arrays of unknown bound. \\
|
16540 | 16540 | \end{libreqtab3f}
|
|
16861 | 16861 | shall be an integral constant of type \tcode{size_t} whose value is the
|
16862 | 16862 | strictest alignment of all types listed in \tcode{Types}.\br
|
16863 | 16863 | \requires{} At least one type is provided.
|
16864 |
| - Each type in the parameter pack \tcode{Types} shall be a complete object type. |
| 16864 | + Each type in the template parameter pack \tcode{Types} shall be a complete object type. |
16865 | 16865 | \\ \rowsep
|
16866 | 16866 |
|
16867 | 16867 | \indexlibrary{\idxcode{remove_cvref}}%
|
|
16905 | 16905 | Unless this trait is specialized (as specified in Note B, below),
|
16906 | 16906 | the member \tcode{type} shall be defined or omitted as specified in Note A, below.
|
16907 | 16907 | If it is omitted, there shall be no member \tcode{type}.
|
16908 |
| - Each type in the parameter pack \tcode{T} shall be |
| 16908 | + Each type in the template parameter pack \tcode{T} shall be |
16909 | 16909 | complete, \cv{}~\tcode{void}, or an array of unknown bound. \\ \rowsep
|
16910 | 16910 |
|
16911 | 16911 | \indexlibrary{\idxcode{underlying_type}}%
|
|
16935 | 16935 | functions, and so on. Such side effects are not in the ``immediate
|
16936 | 16936 | context'' and can result in the program being ill-formed.
|
16937 | 16937 | \end{note} \br
|
16938 |
| - \requires{} \tcode{Fn} and all types in the parameter pack \tcode{ArgTypes} shall |
| 16938 | + \requires{} \tcode{Fn} and all types in the template parameter pack \tcode{ArgTypes} shall |
16939 | 16939 | be complete types, \cv{}~\tcode{void}, or arrays of
|
16940 | 16940 | unknown bound.\\
|
16941 | 16941 | \end{libreqtab2a}
|
|
16961 | 16961 | \indexlibrary{\idxcode{common_type}}%
|
16962 | 16962 | \pnum
|
16963 | 16963 | Note A:
|
16964 |
| -For the \tcode{common_type} trait applied to a parameter pack \tcode{T} of types, |
| 16964 | +For the \tcode{common_type} trait applied to a template parameter pack \tcode{T} of types, |
16965 | 16965 | the member \tcode{type} shall be either defined or not present as follows:
|
16966 | 16966 |
|
16967 | 16967 | \begin{itemize}
|
|
0 commit comments