Skip to content

Commit 563b324

Browse files
committed
Merge 2020-11 CWG Motion 5
2 parents 9417d36 + 00fa43b commit 563b324

16 files changed

+3211
-5108
lines changed

source/basic.tex

Lines changed: 1273 additions & 1426 deletions
Large diffs are not rendered by default.

source/classes.tex

Lines changed: 303 additions & 798 deletions
Large diffs are not rendered by default.

source/compatibility.tex

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1910,6 +1910,14 @@
19101910
\diffref{basic.scope}
19111911
\change
19121912
A \tcode{struct} is a scope in \Cpp{}, not in C.
1913+
For example,
1914+
\begin{codeblock}
1915+
struct X {
1916+
struct Y { int a; } b;
1917+
};
1918+
struct Y c;
1919+
\end{codeblock}
1920+
is valid in C but not in \Cpp{}, which would require \tcode{X::Y c;}.
19131921
\rationale
19141922
Class scope is crucial to \Cpp{}, and a struct is a class.
19151923
\effect
@@ -2603,7 +2611,7 @@
26032611
\howwide
26042612
Seldom.
26052613

2606-
\diffref{class.nested.type}
2614+
\diffref{class.member.lookup}
26072615
\change
26082616
In \Cpp{}, a typedef name may not be redeclared in a class definition after being used in that definition.
26092617

source/concepts.tex

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -867,15 +867,14 @@
867867
\begin{itemize}
868868
\item
869869
either \tcode{remove_cvref_t<T>} is not a class type, or
870-
name lookup for the names \tcode{operator\&\&} and \tcode{operator||}
871-
within the scope of \tcode{remove_cvref_t<T>}
872-
as if by class member access lookup\iref{class.member.lookup}
873-
results in an empty declaration set; and
870+
a search for the names \tcode{operator\&\&} and \tcode{operator||}
871+
in the scope of \tcode{remove_cvref_t<T>}
872+
finds nothing; and
874873

875874
\item
876-
name lookup for the names \tcode{operator\&\&} and \tcode{operator||} in
877-
the associated namespaces and
878-
entities of \tcode{T}\iref{basic.lookup.argdep}
875+
argument-dependent lookup\iref{basic.lookup.argdep}
876+
for the names \tcode{operator\&\&} and \tcode{operator||}
877+
with \tcode{T} as the only argument type
879878
finds no disqualifying declaration (defined below).
880879
\end{itemize}
881880

@@ -942,8 +941,8 @@
942941
\begin{itemize}
943942
\item at least one disqualifying parameter is a key parameter; or
944943
\item the declaration contains no key parameters; or
945-
\item the declaration declares a function template that
946-
is not visible in its namespace\iref{namespace.memdef}.
944+
\item the declaration declares a function template
945+
to which no name is bound\iref{dcl.meaning}.
947946
\end{itemize}
948947
\end{itemize}
949948

0 commit comments

Comments
 (0)