CWG Issue 1691 (original) (raw)
This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 117a. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.
2025-04-13
1691. Argument-dependent lookup and opaque enumerations
Section: 6.5.4 [basic.lookup.argdep]Status: C++14Submitter: David KraussDate: 2013-05-27
[Moved to DR at the February, 2014 meeting.]
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.
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 theinnermost enclosing namespaces of
whichits associated classesare members. Furthermore..- If T is an enumeration type, its associated namespace is the innermost enclosing namespace
in which it is definedof its declaration. If it is a class member, its associated class is the member's class; else it has no associated class.- ...