Skip to content

Commit 528d382

Browse files
CaseyCarterzygoloid
authored andcommitted
[meta.trans.other] Make style of common_type and common_reference consistent
...by tagging the specification of common_reference with "Note C" and basic_common_reference "Note D". Also remove the allowance to specialize basic_common_reference "if at least one template parameter in the specialization depends on a program-defined type"; it's redundant with "...pursuant to [namespace.std]". (This is consistent with `common_type`'s wording.)
1 parent 2aa8b23 commit 528d382

File tree

1 file changed

+8
-10
lines changed

1 file changed

+8
-10
lines changed

source/utilities.tex

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16993,10 +16993,8 @@
1699316993
\tcode{struct}
1699416994
\hspace*{2ex}\tcode{basic_common_reference;}
1699516995
&
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}.
1700016998
\begin{note}
1700116999
Such specializations can be used to influence the result of
1700217000
\tcode{common_reference}.
@@ -17006,8 +17004,8 @@
1700617004
\tcode{template<class... T>} \tcode{struct common_reference;}
1700717005
&
1700817006
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
1701117009

1701217010
\indexlibrary{\idxcode{underlying_type}}%
1701317011
\tcode{template<class T>}\br
@@ -17182,9 +17180,9 @@
1718217180
No diagnostic is required for a violation of this Note's rules.
1718317181

1718417182
\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:
1718817186
\begin{itemize}
1718917187
\item If \tcode{sizeof...(T)} is zero, there shall be no member \tcode{type}.
1719017188

@@ -17226,7 +17224,7 @@
1722617224
\end{itemize}
1722717225

1722817226
\pnum
17229-
Notwithstanding the provisions of \ref{meta.type.synop}, and
17227+
Note D: Notwithstanding the provisions of \ref{meta.type.synop}, and
1723017228
pursuant to \ref{namespace.std}, a program may specialize
1723117229
\tcode{basic_common_reference<T, U, TQual, UQual>}
1723217230
for types \tcode{T} and \tcode{U} such that

0 commit comments

Comments
 (0)