CWG Issue 1692 (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


1692. Associated namespaces of doubly-nested classes

Section: 6.5.4 [basic.lookup.argdep]Status: C++14Submitter: David KraussDate: 2013-05-29

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

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

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 namespaces of which its associated classes are members.

Consider an example like

struct A { struct B { struct C { }; }; };

A has one associated class, itself, and has the global namespace as its associated namespace. A::B has two associated classes, A and itself, and by virtue of its association withA, has the global namespace as its associated namespace.A::B::C has two associated classes, A::B and itself. However, because neither A::B nor A::B::C is a member of a namespace, A::B::C has no associated namespaces.

This seems like a defect.

Proposed resolution (September, 2013):

This issue is resolved by the resolution ofissue 1691.