Skip to content

Commit 8ae157d

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 a257a07 commit 8ae157d

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

source/declarations.tex

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3018,25 +3018,29 @@
30183018

30193019
\pnum
30203020
\indextext{overloading!using-declaration and}%
3021+
\begin{note}
30213022
For the purpose of forming a set of candidates during overload resolution,
30223023
the functions that are
30233024
introduced by a \grammarterm{using-declaration} into a derived class
3024-
are treated as though they were members of the derived class. In
3025-
particular, the implicit \tcode{this} parameter shall be treated as if
3026-
it were a pointer to the derived class rather than to the base class.
3025+
are treated as though they were members of the derived class\iref{class.member.lookup}. In
3026+
particular, the implicit object parameter is treated as if
3027+
it were a reference to the derived class rather than to the base class\iref{over.match.funcs}.
30273028
This has no effect on the type of the function, and in all other
30283029
respects the function remains a member of the base class.
3029-
Likewise, constructors that are introduced by a \grammarterm{using-declaration}
3030+
A member of a derived class is sometimes preferred to a member of a base class
3031+
if they would otherwise be ambiguous\iref{over.match.best}.
3032+
\end{note}
3033+
3034+
\pnum
3035+
Constructors that are introduced by a \grammarterm{using-declaration}
30303036
are treated as though they were constructors of the derived class
30313037
when looking up the constructors of the derived class\iref{class.qual}
30323038
or forming a set of overload candidates~(\ref{over.match.ctor}, \ref{over.match.copy}, \ref{over.match.list}).
3039+
\begin{note}
30333040
If such a constructor is selected to perform the initialization
30343041
of an object of class type, all subobjects other than the base class
30353042
from which the constructor originated
30363043
are implicitly initialized\iref{class.inhctor.init}.
3037-
\begin{note}
3038-
A member of a derived class is sometimes preferred to a member of a base class
3039-
if they would otherwise be ambiguous\iref{over.match.best}.
30403044
\end{note}
30413045

30423046
\pnum

0 commit comments

Comments
 (0)