Skip to content

CWG Poll 5: P1787R6 Declarations and where to find them #4379

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 60 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
cdec7c1
P1787R6 Declarations and where to find them
jensmaurer Nov 15, 2020
60d12b4
basic.scope.scope
jensmaurer Nov 15, 2020
70ea7f2
basic.scope.pdecl
jensmaurer Nov 16, 2020
f052452
basic.scope.block
jensmaurer Nov 16, 2020
322ab63
basic.scope.param
jensmaurer Nov 16, 2020
3c70279
basic.funscope
jensmaurer Nov 16, 2020
a9c57be
basic.scope.namespace
jensmaurer Nov 16, 2020
f59e4f4
basic.scope.class
jensmaurer Nov 16, 2020
545491c
basic.scope.enum
jensmaurer Nov 16, 2020
aae2597
basic.scope.temp
jensmaurer Nov 17, 2020
de690f0
basic.scope.hiding
jensmaurer Nov 17, 2020
fe7218d
basic.lookup.general
jensmaurer Nov 17, 2020
136df78
class.member.lookup
jensmaurer Nov 17, 2020
09fa30e
basic.lookup.unqual
jensmaurer Nov 17, 2020
cdba829
basic.lookup.argdep
jensmaurer Nov 18, 2020
348e5a4
basic.lookup.qual.general
jensmaurer Nov 18, 2020
11710cb
class.qual
jensmaurer Nov 18, 2020
a62e0c3
namespace.qual
jensmaurer Nov 18, 2020
3e9ed5c
basic.lookup.elab
jensmaurer Nov 18, 2020
64868d7
basic.lookup.classref
jensmaurer Nov 18, 2020
b50d0ca
basic.link
jensmaurer Nov 18, 2020
9a6f201
basic.* (rest)
jensmaurer Nov 18, 2020
8e6a813
expr.prim
jensmaurer Nov 18, 2020
be747ec
expr.* (rest)
jensmaurer Nov 18, 2020
09cc371
stmt.stmt
jensmaurer Nov 19, 2020
646674c
dcl.dcl first part
jensmaurer Nov 19, 2020
25c3843
[dcl.pre] Turn 'must' into a note.
jensmaurer Nov 20, 2020
ecfd378
safety
jensmaurer Nov 20, 2020
a17f787
dcl.dcl remainder
jensmaurer Nov 20, 2020
298c2ef
[dcl.link] Clarify sentence structure
jensmaurer Nov 20, 2020
c8b2b49
module
jensmaurer Nov 21, 2020
841248a
class first part
jensmaurer Nov 21, 2020
421097c
class.this
jensmaurer Nov 21, 2020
3ba0e26
class next part
jensmaurer Nov 21, 2020
01cb09a
class.nested.type removed
jensmaurer Nov 21, 2020
244f9f3
classes (rest)
jensmaurer Nov 22, 2020
64a1348
over first part
jensmaurer Nov 22, 2020
e1fa190
over.load, over.dcl removal
jensmaurer Nov 22, 2020
359af02
over (remainder)
jensmaurer Nov 22, 2020
45b9fa8
template (first part)
jensmaurer Nov 23, 2020
5e6efc9
template (second part)
jensmaurer Nov 23, 2020
ffed224
template (third part)
jensmaurer Nov 24, 2020
c020c4b
template (remainder)
jensmaurer Nov 24, 2020
c43ec22
except
jensmaurer Nov 24, 2020
b3fe125
cpp
jensmaurer Nov 24, 2020
d3d963a
concepts
jensmaurer Nov 24, 2020
076460d
diff
jensmaurer Nov 24, 2020
fef8327
depr
jensmaurer Nov 24, 2020
4bd4e1d
Fixup: basic
jensmaurer Nov 24, 2020
8f1c907
Fixup: expr
jensmaurer Nov 26, 2020
4d596a5
Fixup: stmt.stmt, dcl.dcl
jensmaurer Nov 26, 2020
0c15350
[dcl.type.elab] Clarify 'it'.
jensmaurer Nov 26, 2020
fdf78fe
[dcl.type.elab] Clarify 'declaration'.
jensmaurer Nov 26, 2020
d0a1dab
[dcl.spec.auto.general] Clarify redeclarations vs. placeholder types.
jensmaurer Nov 26, 2020
70d6627
[dcl.meaning.general] Clarify origin of 'declarator-id'.
jensmaurer Nov 26, 2020
18c1005
Fixup: module
jensmaurer Nov 26, 2020
fa6b952
Fixup: class
jensmaurer Nov 26, 2020
3934ec8
Fixup: overloading
jensmaurer Nov 26, 2020
95c6ec5
Fixup: temp
jensmaurer Nov 26, 2020
02395ea
Fixup: class
jensmaurer Nov 27, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2,697 changes: 1,272 additions & 1,425 deletions source/basic.tex

Large diffs are not rendered by default.

1,102 changes: 304 additions & 798 deletions source/classes.tex

Large diffs are not rendered by default.

10 changes: 9 additions & 1 deletion source/compatibility.tex
Original file line number Diff line number Diff line change
Expand Up @@ -1910,6 +1910,14 @@
\diffref{basic.scope}
\change
A \tcode{struct} is a scope in \Cpp{}, not in C.
For example,
\begin{codeblock}
struct X {
struct Y { int a; } b;
};
struct Y c;
\end{codeblock}
is valid in C but not in \Cpp{}, which would require \tcode{X::Y c;}.
\rationale
Class scope is crucial to \Cpp{}, and a struct is a class.
\effect
Expand Down Expand Up @@ -2603,7 +2611,7 @@
\howwide
Seldom.

\diffref{class.nested.type}
\diffref{class.member.lookup}
\change
In \Cpp{}, a typedef name may not be redeclared in a class definition after being used in that definition.

Expand Down
17 changes: 8 additions & 9 deletions source/concepts.tex
Original file line number Diff line number Diff line change
Expand Up @@ -867,15 +867,14 @@
\begin{itemize}
\item
either \tcode{remove_cvref_t<T>} is not a class type, or
name lookup for the names \tcode{operator\&\&} and \tcode{operator||}
within the scope of \tcode{remove_cvref_t<T>}
as if by class member access lookup\iref{class.member.lookup}
results in an empty declaration set; and
a search for the names \tcode{operator\&\&} and \tcode{operator||}
in the scope of \tcode{remove_cvref_t<T>}
finds nothing; and

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

Expand Down Expand Up @@ -942,8 +941,8 @@
\begin{itemize}
\item at least one disqualifying parameter is a key parameter; or
\item the declaration contains no key parameters; or
\item the declaration declares a function template that
is not visible in its namespace\iref{namespace.memdef}.
\item the declaration declares a function template
to which no name is bound\iref{dcl.meaning}.
\end{itemize}
\end{itemize}

Expand Down
Loading