|
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