From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24901 invoked by alias); 3 Feb 2004 14:06:37 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 24871 invoked by uid 48); 3 Feb 2004 14:06:35 -0000 Date: Tue, 03 Feb 2004 14:06:00 -0000 Message-ID: <20040203140635.24870.qmail@sources.redhat.com> From: "giovannibajo at libero dot it" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20030819225102.11987.bangerth@dealii.org> References: <20030819225102.11987.bangerth@dealii.org> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug c++/11987] [3.4/3.5 regression] Accepts-invalid with inherited nested type X-Bugzilla-Reason: CC X-SW-Source: 2004-02/txt/msg00342.txt.bz2 List-Id: ------- Additional Comments From giovannibajo at libero dot it 2004-02-03 14:06 ------- Wolfgang, I'm revisiting this bug. Y::I is a typedef for X::I. The standard does not explicitally forbids the use of typedef-names as qualifying scope in a constructor definition, and they are generally allowed for member functions. For instance, the following is trivially valid: struct C { C(); }; typedef C D; D::C() {} The only limitation I see is [comp.ctor]/3, which says that "a typedef-name that names a class shall not be used as the identifier in the declarator for a constructor declaration." but it is referring to the identifier itself, not to the qualified-id. Do you agree? I'm positive that your testcase is indeed valid. -- What |Removed |Added ---------------------------------------------------------------------------- CC| |giovannibajo at libero dot | |it http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11987