Skip to content

Commit 5763cd7

Browse files
committed
[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 5d20d51 commit 5763cd7

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
@@ -16958,10 +16958,8 @@
1695816958
\tcode{struct}
1695916959
\hspace*{2ex}\tcode{basic_common_reference;}
1696016960
&
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}.
1696516963
\begin{note}
1696616964
Such specializations can be used to influence the result of
1696716965
\tcode{common_reference}.
@@ -16971,8 +16969,8 @@
1697116969
\tcode{template <class... T>} \tcode{struct common_reference;}
1697216970
&
1697316971
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
1697616974

1697716975
\indexlibrary{\idxcode{underlying_type}}%
1697816976
\tcode{template<class T>}\br
@@ -17147,9 +17145,9 @@
1714717145
No diagnostic is required for a violation of this Note's rules.
1714817146

1714917147
\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:
1715317151
\begin{itemize}
1715417152
\item If \tcode{sizeof...(T)} is zero, there shall be no member \tcode{type}.
1715517153

@@ -17191,7 +17189,7 @@
1719117189
\end{itemize}
1719217190

1719317191
\pnum
17194-
Notwithstanding the provisions of \ref{meta.type.synop}, and
17192+
Note D: Notwithstanding the provisions of \ref{meta.type.synop}, and
1719517193
pursuant to \ref{namespace.std}, a program may specialize
1719617194
\tcode{basic_common_reference<T, U, TQual, UQual>}
1719717195
for types \tcode{T} and \tcode{U} such that

0 commit comments

Comments
 (0)