Skip to content

Commit 4083dd7

Browse files
committed
[namespace.udecl] Demote normative duplication to notes
The effects of using-declarations naming member functions are discussed in other parts of the standard. The effects of initializing with an inherited constructor are discussed elsewhere, too.
1 parent 3fe46c7 commit 4083dd7

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

source/declarations.tex

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3043,24 +3043,28 @@
30433043

30443044
\pnum
30453045
\indextext{overloading!using-declaration and}%
3046+
\begin{note}
30463047
For the purpose of forming a set of candidates during overload resolution,
30473048
the functions that are
30483049
introduced by a \grammarterm{using-declaration} into a derived class
3049-
are treated as though they were members of the derived class. In
3050-
particular, the implicit \tcode{this} parameter shall be treated as if
3051-
it were a pointer to the derived class rather than to the base class.
3050+
are treated as though they were members of the derived class\iref{class.member.lookup}. In
3051+
particular, the implicit object parameter is treated as if
3052+
it were a reference to the derived class rather than to the base class\iref{over.match.funcs}.
30523053
This has no effect on the type of the function, and in all other
30533054
respects the function remains a member of the base class.
3054-
Likewise, constructors that are introduced by a \grammarterm{using-declaration}
3055+
\end{note}
3056+
3057+
\pnum
3058+
Constructors that are introduced by a \grammarterm{using-declaration}
30553059
are treated as though they were constructors of the derived class
30563060
when looking up the constructors of the derived class\iref{class.qual}
30573061
or forming a set of overload candidates~(\ref{over.match.ctor}, \ref{over.match.copy}, \ref{over.match.list}).
3062+
\begin{note}
30583063
If such a constructor is selected to perform the initialization
30593064
of an object of class type, all subobjects other than the base class
30603065
from which the constructor originated
30613066
are implicitly initialized\iref{class.inhctor.init}.
3062-
\begin{note}
3063-
A member of a derived class is sometimes preferred to a member of a base class
3067+
A constructor of a derived class is sometimes preferred to a member of a base class
30643068
if they would otherwise be ambiguous\iref{over.match.best}.
30653069
\end{note}
30663070

0 commit comments

Comments
 (0)