Date
2009-06-15.00:00:00
Message id
2036

Content

Proposed resolution (June, 2009):

  1. Change 6.1 [basic.pre] paragraph 4 as follows:

  2. A name is a use of an identifier (5.11 [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]).
  3. Change _N4567_.5.1.1 [expr.prim.general] paragraph 3 as follows:

  4. The operator :: followed by an identifier, a qualified-id, or an operator-function-id, or a literal-operator-id is a primary-expression. Its type is specified by the declaration of the identifier, qualified-id, or operator-function-id, or literal-operator-id. The result is the entity denoted by the identifier, qualified-id, or operator-function-id, or literal-operator-id. The result is an lvalue if the entity is a function or variable. The identifier, qualified-id, or operator-function-id, or literal-operator-id shall have global namespace scope or be visible in global scope because of a using-directive (9.9.4 [namespace.udir])...
  5. Add the following production to the grammar for qualified-id in _N4567_.5.1.1 [expr.prim.general] paragraph 7:

    • qualified-id:
        ::opt nested-name-specifier templateopt unqualified-id
        :: identifier
        :: operator-function-id
        :: literal-operator-id
        :: template-id
  6. Add the following production to the grammar for template-id in 13.3 [temp.names] paragraph 1:

    • template-id:
        simple-template-id
        operator-function-id < template-argument-listopt >
        literal-operator-id < template-argument-listopt >
  7. Change 13.3 [temp.names] paragraph 3 as follows:

  8. 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...
  9. 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