From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1426 invoked by alias); 13 May 2003 11:34:53 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 19797 invoked by uid 48); 13 May 2003 11:32:53 -0000 Date: Tue, 13 May 2003 11:34:00 -0000 Message-ID: <20030513113253.19787.qmail@sources.redhat.com> To: bangerth@dealii.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, nobody@gcc.gnu.org From: giovannibajo@libero.it Reply-To: giovannibajo@libero.it, bangerth@dealii.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org Subject: Re: c++/10759: Invalid use of typename accepted X-SW-Source: 2003-05/txt/msg01472.txt.bz2 List-Id: Synopsis: Invalid use of typename accepted State-Changed-From-To: open->closed State-Changed-By: bajo State-Changed-When: Tue May 13 11:32:52 2003 State-Changed-Why: Not a bug IMO. 'typename' can be used anywhere within a template definition, as long as it refers to a qualified name which names a type. It's required only if the name is dependent, but it is accepted even if it is not. In your case, NS::C is a qualified non-dependent name within a template definition so it can be preponed with 'typename'. If you move C<> out of NS, you remove the qualification. http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=10759