------- Comment #5 from jason at gcc dot gnu dot org  2009-11-04 22:34 -------
14.7.1 [temp.local]

Like normal (non-template) classes, class templates have an injected-class-name
(Clause 9). The injected-class-name can be used with or without a
template-argument-list. When it is used without a template-argument-list, it is
equivalent to the injected-class-name followed by the template-parameters of
the class template enclosed in <>. When it is used with a
template-argument-list, it refers to the specified class template
specialization, which could be the current specialization or another
specialization.

So within foo::bar<int>, the name "bar" refers to foo::bar, and G++ is correct.


-- 

jason at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |INVALID


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8858

Reply via email to