Created on 2014-02-26.00:00:00 last changed 49 months ago
[Moved to DR at the November, 2014 meeting.]
Proposed resolution (October, 2014):
Change 5.10 [lex.name] paragraph 3 as follows:
In addition, some identifiers are reserved for use by C++ implementations
and standard libraries (_N4140_.184.108.40.206.2 [global.names])and shall not be used otherwise; no diagnostic is required.
Change the footnote in 9.5.1 [dcl.fct.def.general] paragraph 8 as follows:
[Footnote: Implementations are permitted to provide additional predefined variables with names that are reserved to the implementation (
_N4140_.220.127.116.11.2 [global.names]). If a predefined variable is not odr-used (6.3 [basic.def.odr]), its string value need not be present in the program image. —end footnote]
Change the example in 12.6 [over.literal] paragraph 8 as follows:
double operator""_Bq(double); // OK: does not use the reserved
name_Bq ( _N4140_.18.104.22.168.2 [global.names]) double operator"" _Bq(double); // uses the reserved name_Bq ( _N4140_.22.214.171.124.2 [global.names])
Delete _N4140_.126.96.36.199.2 [global.names]:
Certain sets of names and function signatures are always reserved to the implementation:
Each name that contains a double underscore __ or begins with an underscore followed by an uppercase letter (5.11 [lex.key]) is reserved to the implementation for any use.
Each name that begins with an underscore is reserved to the implementation for use as a name in the global namespace.
The section of the Standard reserving names that begin with two underscores or an underscore and a capital letter, _N4140_.188.8.131.52.2 [global.names], applies only to “programs that use the facilities of the C++ standard library” (184.108.40.206 [constraints.overview]). However, implementations rely on this restriction for mangling, even when no standard library facilities are used. Should this requirement be moved to the core language section?
(There is a related issue with user-defined literal suffixes, 220.127.116.11.6 [usrlit.suffix]. However, these are already mentioned normatively in the core language section, so it could be argued that the question of library usage does not apply.)
|2017-02-06 00:00:00||admin||set||status: drwp -> cd4|
|2015-05-25 00:00:00||admin||set||status: dr -> drwp|
|2015-04-13 00:00:00||admin||set||messages: + msg5322|
|2014-11-24 00:00:00||admin||set||status: tentatively ready -> dr|
|2014-10-13 00:00:00||admin||set||messages: + msg5146|
|2014-10-13 00:00:00||admin||set||status: drafting -> tentatively ready|
|2014-07-07 00:00:00||admin||set||status: open -> drafting|