Date
2010-08-15.00:00:00
Message id
2760

Content

Proposed resolution (August, 2010):

Change 6.6 [basic.link] paragraph 4 as follows:

An unnamed namespace or a namespace declared directly or indirectly within an unnamed namespace has internal linkage. All other namespaces have external linkage. A name having namespace scope that has not been given internal linkage above has external linkage the same linkage as the enclosing namespace if it is the name of
  • a variable, unless it has internal linkage; or

  • a function, unless it has internal linkage; or

  • a named class (Clause 11 [class]), or an unnamed class defined in a typedef declaration in which the class has the typedef name for linkage purposes (9.2.4 [dcl.typedef]); or

  • a named enumeration (9.8.1 [dcl.enum]), or an unnamed enumeration defined in a typedef declaration in which the enumeration has the typedef name for linkage purposes (9.2.4 [dcl.typedef]); or

  • an enumerator belonging to an enumeration with external linkage; or

  • a template, unless it is a function template that has internal linkage (Clause 13 [temp]); or.

  • a namespace (9.9 [basic.namespace]), unless it is declared within an unnamed namespace.