This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 115d. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.
2024-10-26
[Voted into WP at March, 2010 meeting.]
According to 9.5 [dcl.fct.def] paragraph 10,
A deleted definition of a function shall be the first declaration of the function.
The Standard is not currently clear about what the “first declaration” of an explicit specialization of a function template is. For example,
template<typename T> void f() { }
template<> void f<int>() = delete; // First declaration?
Proposed resolution (October, 2009):
A deleted definition of a function shall be the first declaration of the function or, for an explicit specialization of a function template, the first declaration of that specialization.
(This resolution also resolves issue 915.)
Notes from the October, 2009 meeting:
It was observed that this specification is complicated by the fact that the “first declaration” of a function might be in a block-extern declaration.