This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 115e. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.
2024-11-11
[Voted into WP at October, 2009 meeting.]
When user-defined literals were added, a new form of operator function was created. Presumably many of the existing specifications that deal with operator-function-ids (the definition of name, for instance, in paragraph 4 of 6.1 [basic.pre]) should also apply to literal-operator-ids.
Proposed resolution (June, 2009):
Change 6.1 [basic.pre] paragraph 4 as follows:
A name is a use of an identifier (5.10 [lex.name]), operator-function-id (12.4 [over.oper]), literal-operator-id (12.6 [over.literal]), conversion-function-id (11.4.8.3 [class.conv.fct]), or template-id (13.3 [temp.names]) that denotes an entity or label (8.7.6 [stmt.goto], 8.2 [stmt.label]).
Change _N4567_.5.1.1 [expr.prim.general] paragraph 3 as follows:
The operator :: followed by an identifier, a qualified-id,oran operator-function-id, or a literal-operator-id is a primary-expression. Its type is specified by the declaration of the identifier, qualified-id,oroperator-function-id, or literal-operator-id. The result is the entity denoted by the identifier, qualified-id,oroperator-function-id, or literal-operator-id. The result is an lvalue if the entity is a function or variable. The identifier, qualified-id,oroperator-function-id, or literal-operator-id shall have global namespace scope or be visible in global scope because of a using-directive (9.8.4 [namespace.udir])...
Add the following production to the grammar for qualified-id in _N4567_.5.1.1 [expr.prim.general] paragraph 7:
Add the following production to the grammar for template-id in 13.3 [temp.names] paragraph 1:
Change 13.3 [temp.names] paragraph 3 as follows:
After name lookup (6.5 [basic.lookup]) finds that a name is a template-name, or that an operator-function-id or a literal-operator-id refers to a set of overloaded functions any member of which is a function template...
Change 13.6 [temp.type] bullet 1.1 as follows:
their template-names, or
operator-function-ids, or literal-operator-ids
refer to the same template, and