|
16993 | 16993 | \tcode{struct}
|
16994 | 16994 | \hspace*{2ex}\tcode{basic_common_reference;}
|
16995 | 16995 | &
|
16996 |
| - A program may specialize this trait if at least one |
16997 |
| - template parameter in the specialization depends on a program-defined |
16998 |
| - type. If there is a member \tcode{type}, it shall be a |
16999 |
| - \grammarterm{typedef-name}. |
| 16996 | + A program may specialize this trait (as specified in Note D, below). If there |
| 16997 | + is a member \tcode{type}, it shall be a \grammarterm{typedef-name}. |
17000 | 16998 | \begin{note}
|
17001 | 16999 | Such specializations can be used to influence the result of
|
17002 | 17000 | \tcode{common_reference}.
|
|
17006 | 17004 | \tcode{template<class... T>} \tcode{struct common_reference;}
|
17007 | 17005 | &
|
17008 | 17006 | The member \grammarterm{typedef-name} \tcode{type} is defined or omitted
|
17009 |
| - as specified below. Each type in the parameter pack \tcode{T} shall be |
17010 |
| - complete or (possibly \cv) \tcode{void}. \\ \rowsep |
| 17007 | + as specified in Note C, below. Each type in the parameter pack \tcode{T} shall |
| 17008 | + be complete or (possibly \cv) \tcode{void}. \\ \rowsep |
17011 | 17009 |
|
17012 | 17010 | \indexlibrary{\idxcode{underlying_type}}%
|
17013 | 17011 | \tcode{template<class T>}\br
|
|
17182 | 17180 | No diagnostic is required for a violation of this Note's rules.
|
17183 | 17181 |
|
17184 | 17182 | \pnum
|
17185 |
| -For the \tcode{common_reference} trait applied to a parameter pack \tcode{T} of |
17186 |
| -types, the member \tcode{type} shall be either defined or not present as |
17187 |
| -follows: |
| 17183 | +Note C: For the \tcode{common_reference} trait applied to a parameter pack |
| 17184 | +\tcode{T} of types, the member \tcode{type} shall be either defined or not |
| 17185 | +present as follows: |
17188 | 17186 | \begin{itemize}
|
17189 | 17187 | \item If \tcode{sizeof...(T)} is zero, there shall be no member \tcode{type}.
|
17190 | 17188 |
|
|
17226 | 17224 | \end{itemize}
|
17227 | 17225 |
|
17228 | 17226 | \pnum
|
17229 |
| -Notwithstanding the provisions of \ref{meta.type.synop}, and |
| 17227 | +Note D: Notwithstanding the provisions of \ref{meta.type.synop}, and |
17230 | 17228 | pursuant to \ref{namespace.std}, a program may specialize
|
17231 | 17229 | \tcode{basic_common_reference<T, U, TQual, UQual>}
|
17232 | 17230 | for types \tcode{T} and \tcode{U} such that
|
|
0 commit comments