Title
Argument-dependent lookup and opaque enumerations
Status
c++14
Section
6.5.4 [basic.lookup.argdep]
Submitter
David Krauss

Created on 2013-05-27.00:00:00 last changed 114 months ago

Messages

Date: 2014-02-15.00:00:00

[Moved to DR at the February, 2014 meeting.]

Date: 2013-09-15.00:00:00

Proposed resolution (September, 2013):

Change 6.5.4 [basic.lookup.argdep] paragraph 2 as follows:

...The sets of namespaces and classes are determined in the following way:

  • ...

  • If T is a class type (including unions), its associated classes are: the class itself; the class of which it is a member, if any; and its direct and indirect base classes. Its associated namespaces are the innermost enclosing namespaces of which its associated classes are members. Furthermore..

  • If T is an enumeration type, its associated namespace is the innermost enclosing namespace in which it is defined of its declaration. If it is a class member, its associated class is the member's class; else it has no associated class.

  • ...

This resolution also resolves issues 1690 and 1692.

Date: 2013-05-27.00:00:00

According to 6.5.4 [basic.lookup.argdep] paragraph 2,

If T is an enumeration type, its associated namespace is the namespace in which it is defined. If it is class member, its associated class is the member's class; else it has no associated class.

This does not take into account opaque enumerations, which can be defined in an enclosing namespace of the one of which is a member.

History
Date User Action Args
2014-11-24 00:00:00adminsetstatus: dr -> c++14
2014-03-03 00:00:00adminsetmessages: + msg4929
2014-03-03 00:00:00adminsetstatus: ready -> dr
2013-10-14 00:00:00adminsetmessages: + msg4568
2013-10-14 00:00:00adminsetstatus: open -> ready
2013-05-27 00:00:00admincreate