|
1934 | 1934 |
|
1935 | 1935 | \tcode{template<class... T>} \tcode{struct common_type;}
|
1936 | 1936 | &
|
1937 |
| - Unless this trait is specialized (as specified in Note B, below), |
1938 |
| - the member \tcode{type} is defined or omitted as specified in Note A, below. |
| 1937 | + Unless this trait is specialized, |
| 1938 | + the member \tcode{type} is defined or omitted as specified below. |
1939 | 1939 | If it is omitted, there shall be no member \tcode{type}.
|
1940 | 1940 | Each type in the template parameter pack \tcode{T} shall be
|
1941 | 1941 | complete, \cv{}~\keyword{void}, or an array of unknown bound. \\ \rowsep
|
|
1947 | 1947 | \keyword{struct}
|
1948 | 1948 | \hspace*{2ex}\tcode{basic_common_reference;}
|
1949 | 1949 | &
|
1950 |
| - Unless this trait is specialized (as specified in Note D, below), |
| 1950 | + Unless this trait is specialized, |
1951 | 1951 | there shall be no member \tcode{type}. \\ \rowsep
|
1952 | 1952 |
|
1953 | 1953 | \indexlibraryglobal{common_reference}%
|
1954 | 1954 | \tcode{template<class... T>} \tcode{struct common_reference;}
|
1955 | 1955 | &
|
1956 | 1956 | The member \grammarterm{typedef-name} \tcode{type} is defined or omitted
|
1957 |
| - as specified in Note C, below. Each type in the parameter pack \tcode{T} shall |
| 1957 | + as specified below. Each type in the parameter pack \tcode{T} shall |
1958 | 1958 | be complete or \cv{} \keyword{void}. \\ \rowsep
|
1959 | 1959 |
|
1960 | 1960 | \indexlibraryglobal{underlying_type}%
|
|
2066 | 2066 | \tcode{\placeholdernc{COMMON-REF}(A, B)} is ill-formed.
|
2067 | 2067 |
|
2068 | 2068 | \pnum
|
2069 |
| -Note A: |
2070 | 2069 | For the \tcode{common_type} trait applied to a template parameter pack \tcode{T} of types,
|
2071 | 2070 | the member \tcode{type} shall be either defined or not present as follows:
|
2072 | 2071 |
|
|
2120 | 2119 | \end{itemize}
|
2121 | 2120 |
|
2122 | 2121 | \pnum
|
2123 |
| -Note B: Notwithstanding the provisions of \ref{meta.type.synop}, and |
| 2122 | +Notwithstanding the provisions of \ref{meta.type.synop}, and |
2124 | 2123 | pursuant to \ref{namespace.std},
|
2125 | 2124 | a program may specialize \tcode{common_type<T1, T2>}
|
2126 | 2125 | for types \tcode{T1} and \tcode{T2} such that
|
|
2140 | 2139 | No diagnostic is required for a violation of this Note's rules.
|
2141 | 2140 |
|
2142 | 2141 | \pnum
|
2143 |
| -Note C: For the \tcode{common_reference} trait applied to a parameter pack |
| 2142 | +For the \tcode{common_reference} trait applied to a parameter pack |
2144 | 2143 | \tcode{T} of types, the member \tcode{type} shall be either defined or not
|
2145 | 2144 | present as follows:
|
2146 | 2145 | \begin{itemize}
|
|
2186 | 2185 | \end{itemize}
|
2187 | 2186 |
|
2188 | 2187 | \pnum
|
2189 |
| -Note D: Notwithstanding the provisions of \ref{meta.type.synop}, and |
| 2188 | +Notwithstanding the provisions of \ref{meta.type.synop}, and |
2190 | 2189 | pursuant to \ref{namespace.std}, a program may partially specialize
|
2191 | 2190 | \tcode{basic_common_reference<T, U, TQual, UQual>}
|
2192 | 2191 | for types \tcode{T} and \tcode{U} such that
|
|
0 commit comments