Created on 2015-11-12.00:00:00 last changed 81 months ago
Proposed resolution (March, 2017):
Delete 6.6 [basic.link] bullet 4.5:
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 the same linkage as the enclosing namespace if it is the name of
...
an enumerator belonging to an enumeration with linkage; or...
Change 6.6 [basic.link] paragraph 9 as follows:
Two names that are the same (6.1 [basic.pre]) and that are declared in different scopes shall denote the same variable, function, type,enumerator,template or namespace if...
[Adopted at the February/March, 2017 meeting.]
According to the rules in 6.6 [basic.link] paragraph 4, the enumerators of an enumeration type with linkage also have linkage. Having same-named enumerators in different translation units would seem to be innocuous. Is there a rationale for this rule?
History | |||
---|---|---|---|
Date | User | Action | Args |
2018-02-27 00:00:00 | admin | set | status: tentatively ready -> c++17 |
2017-02-06 00:00:00 | admin | set | messages: + msg5724 |
2015-11-12 00:00:00 | admin | create |