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
[Voted into the WP at the November, 2010 meeting.]
N3092 comment GB 43The current rules for determining whether a name refers to the currentinstantiation, given in 13.8.3.2 [temp.dep.type] paragraph 1, do notcover the case when atemplate-id matching a primary template orpartial specialization appears in the definition of a member of thetemplate.
Proposed resolution (August, 2010):
Change 13.8.3.2 [temp.dep.type] paragraph 1 as follows:
In the definition of a class template, a nested classof a class template, a member of a class template, or amember of a nested class of a class template, aA name refers to thecurrent instantiation if it is
in the definition of a class template, anested class of a class template, a member of a classtemplate, or a member of a nested class of a classtemplate, the injected-class-name (Clause 11 [class]) of the class template or nested class,
in the definition of a primary class templateora member of a primary class template, the name of theclass template followed by the template argument list of theprimary template (as described below) enclosed in<>,
in the definition of a nested class of a classtemplate, the name of the nested class referenced as amember of the current instantiation, or
in the definition of a partial specializationora member of a partial specialization, the name of theclass template followed by the template argument list of thepartial specialization enclosed in<>. If thenth template parameter is a parameter pack, thenth template argument is a pack expansion(13.7.4 [temp.variadic]) whose pattern is the name ofthe parameter pack.