This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 110b. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2023-01-15


1692. Associated namespaces of doubly-nested classes

Section: 6.5.4  [basic.lookup.argdep]     Status: C++14     Submitter: David Krauss     Date: 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 with A, 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 of issue 1691.