CWG Issue 468 (original) (raw)

This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 118e. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2025-11-05


468. Allow ::template outside of templates

Section: 13.3 [temp.names]Status: CD1Submitter: John SpicerDate: 9 Apr 2004

[Voted into WP at the October, 2006 meeting.]

For the same reasons that issue 382proposes for relaxation of the requirements on typename, it would make sense to allow the ::template disambiguator outside of templates.

See also issues 11,30,96, and 109.

Proposed resolution (October, 2005):

Change 13.3 [temp.names] paragraph 5 as indicated:

If a name prefixed by the keyword template is not the name of a template, the program is ill-formed. [Note: the keyword template may not be applied to non-template members of class templates. —_end note_] Furthermore, names of member templates shall not be prefixed by the keyword template if the _postfix-expression_or qualified-id does not appear in the scope of a template.[Note: just as is the case with the typename prefix, the template prefix is allowed in cases where it is not strictly necessary; i.e., when the nested-name-specifier or the expression on the left of the ->or ., or the nested-name-specifier is not dependent on a template-parameter, or the use does not appear in the scope of a template. —_end note_]