This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 116a. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.
2024-12-19
[Voted into WP at August, 2010 meeting.]
According to 13.4.3 [temp.arg.nontype] paragraph 1, bullet 3, one of the acceptable forms of a non-type, non-template template argument is:
the address of an object or function... expressed as & id-expression where the & is optional if the name refers to a function or array, or if the corresponding template-parameter is a reference
It is not clear from this whether a template argument like (&i) satisfies the requirement or not.
Notes from the March, 2009 meeting:
The consensus of the CWG was that the parentheses should be allowed.
Proposed resolution (February, 2010):
Change 13.4.3 [temp.arg.nontype] bullet 1.3 as follows:
the address of an object or function with external linkage,
including function templates and function template-ids but
excluding non-static class members, expressed (ignoring
parentheses) as & id-expression, except
that where the & is optional
may be omitted if the name refers to a function or
array, or and shall be omitted if the
corresponding template-parameter is a reference; or
[Drafting note: The change requiring the omission of the & in the reference case fixes an existing problem that is not related to this issue.]