|
16958 | 16958 | \tcode{struct}
|
16959 | 16959 | \hspace*{2ex}\tcode{basic_common_reference;}
|
16960 | 16960 | &
|
16961 |
| - A program may specialize this trait if at least one |
16962 |
| - template parameter in the specialization depends on a program-defined |
16963 |
| - type. If there is a member \tcode{type}, it shall be a |
16964 |
| - \grammarterm{typedef-name}. |
| 16961 | + A program may specialize this trait (as specified in Note D, below). If there |
| 16962 | + is a member \tcode{type}, it shall be a \grammarterm{typedef-name}. |
16965 | 16963 | \begin{note}
|
16966 | 16964 | Such specializations can be used to influence the result of
|
16967 | 16965 | \tcode{common_reference}.
|
|
16971 | 16969 | \tcode{template <class... T>} \tcode{struct common_reference;}
|
16972 | 16970 | &
|
16973 | 16971 | The member \grammarterm{typedef-name} \tcode{type} is defined or omitted
|
16974 |
| - as specified below. Each type in the parameter pack \tcode{T} shall be |
16975 |
| - complete or (possibly \cv) \tcode{void}. \\ \rowsep |
| 16972 | + as specified in Note C, below. Each type in the parameter pack \tcode{T} shall |
| 16973 | + be complete or (possibly \cv) \tcode{void}. \\ \rowsep |
16976 | 16974 |
|
16977 | 16975 | \indexlibrary{\idxcode{underlying_type}}%
|
16978 | 16976 | \tcode{template<class T>}\br
|
|
17147 | 17145 | No diagnostic is required for a violation of this Note's rules.
|
17148 | 17146 |
|
17149 | 17147 | \pnum
|
17150 |
| -For the \tcode{common_reference} trait applied to a parameter pack \tcode{T} of |
17151 |
| -types, the member \tcode{type} shall be either defined or not present as |
17152 |
| -follows: |
| 17148 | +Note C: For the \tcode{common_reference} trait applied to a parameter pack |
| 17149 | +\tcode{T} of types, the member \tcode{type} shall be either defined or not |
| 17150 | +present as follows: |
17153 | 17151 | \begin{itemize}
|
17154 | 17152 | \item If \tcode{sizeof...(T)} is zero, there shall be no member \tcode{type}.
|
17155 | 17153 |
|
|
17191 | 17189 | \end{itemize}
|
17192 | 17190 |
|
17193 | 17191 | \pnum
|
17194 |
| -Notwithstanding the provisions of \ref{meta.type.synop}, and |
| 17192 | +Note D: Notwithstanding the provisions of \ref{meta.type.synop}, and |
17195 | 17193 | pursuant to \ref{namespace.std}, a program may specialize
|
17196 | 17194 | \tcode{basic_common_reference<T, U, TQual, UQual>}
|
17197 | 17195 | for types \tcode{T} and \tcode{U} such that
|
|
0 commit comments