From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7191 invoked by alias); 21 Aug 2002 17:06:01 -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 7171 invoked by uid 71); 21 Aug 2002 17:06:00 -0000 Resent-Date: 21 Aug 2002 17:06:00 -0000 Resent-Message-ID: <20020821170600.7170.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, dl256@columbia.edu Received: (qmail 5746 invoked by uid 61); 21 Aug 2002 17:00:59 -0000 Message-Id: <20020821170059.5745.qmail@sources.redhat.com> Date: Wed, 21 Aug 2002 13:25:00 -0000 From: dl256@columbia.edu Reply-To: dl256@columbia.edu To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: c++/7678: implicity typename deprecated inheritance problem X-SW-Source: 2002-08/txt/msg00446.txt.bz2 List-Id: >Number: 7678 >Category: c++ >Synopsis: implicity typename deprecated inheritance problem >Confidential: no >Severity: non-critical >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Wed Aug 21 10:06:00 PDT 2002 >Closed-Date: >Last-Modified: >Originator: dl256@columbia.edu >Release: gcc-3.1 >Organization: >Environment: gnu-linux kernal 2.4.18 (i686) >Description: compile the attached file using: g++ -c experiment.cpp The compiler warns that "implicit typname is deprecated". . The base class is templated. It takes a traits structure as it's tmeplate argument, and then it creates typedefs in the public area of the class. The derived class is also templated, but it contains no typedefs. It is desirable to used the types defined in the base class in the derived class, without using the typename base<__traits>:: qualification. Is your interpretation of the specification correct for this case? This doesn't make sense to me. The new types should at lease be inherited in the derived class so that we can use them in the usual way (i.e., without full qualification using typename). >How-To-Repeat: Just compile the attached file and check the warnings. >Fix: Don't know. >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="experiment.cpp" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="experiment.cpp" Ly8gQSB0ZXN0IGMrKyBjb2RlIHRvIGV4aGliaXQgYW4gdW5kZXNpcmVkIGZlYXR1cmUgb2YgaW4g Z2NjLTMuMQovLwovLyBUaGUgd2FybmluZyBpc3N1ZWQgYnkgdGhlIGNvbXBpbGVyIGhhcyB0byBk byB3aXRoCi8vICJpbXBsaWNpdCB0eXBlbmFtZSBkZXByZWNhdGVkIi4gIFdlIHdvdWxkIGxpa2Ug dG8gdXNlIHNpemVfdHlwZQovLyBhbmQgdmFsdWVfdHlwZSBpbiB0aGUgZGVyaXZlZCBjbGFzcyB3 aXRob3V0IHVzaW5nIHRoZSBsb25nCi8vIG5hbWVzIHN1Y2ggYXMgdHlwZW5hbWUgYmFzZTxfX3Ry YWl0cz46OnZhbHVlX3R5cGUuCgpzdHJ1Y3QgbXl0cmFpdHMgewogIHR5cGVkZWYgaW50ICAgIHNp emVfdHlwZTsKICB0eXBlZGVmIGRvdWJsZSB2YWx1ZV90eXBlOwp9OwoKdGVtcGxhdGUgPGNsYXNz IF9fdHJhaXRzPgpjbGFzcyBiYXNlIHsKcHVibGljOgogIHR5cGVkZWYgdHlwZW5hbWUgX190cmFp dHM6OnNpemVfdHlwZSAgICBzaXplX3R5cGU7CiAgdHlwZWRlZiB0eXBlbmFtZSBfX3RyYWl0czo6 dmFsdWVfdHlwZSAgIHZhbHVlX3R5cGU7CgogIGJhc2UodmFsdWVfdHlwZSB4XykgOiB4KHhfKSB7 fQoKcHJpdmF0ZToKICB2YWx1ZV90eXBlIHg7Cn07Cgp0ZW1wbGF0ZSA8Y2xhc3MgX190cmFpdHM+ CmNsYXNzIGFwcCA6IHB1YmxpYyBiYXNlPF9fdHJhaXRzPiB7CgpwdWJsaWM6CgogIC8vICoqKioK ICAvLyAqKioqIHdhcm5pbmdzIGlzc3VlZCBoZXJlCiAgLy8gKioqKgoKICBhcHAodmFsdWVfdHlw ZSB4XywgdmFsdWVfdHlwZSB5XykgOiBiYXNlPF9fdHJhaXRzPih4XyksIHkoeV8pIHt9Cgpwcml2 YXRlOgoKICAvLyAqKioqCiAgLy8gKioqKiBubyB3YXJuaW5ncyBoZXJlCiAgLy8gKioqKgogIHR5 cGVuYW1lIGJhc2U8X190cmFpdHM+Ojp2YWx1ZV90eXBlIHk7Cgp9OwoKaW50IG1haW4oKSB7CiAg YXBwPG15dHJhaXRzPiBvYmooMS4wLDIuMCk7CgogIHJldHVybiAwOwp9Cg==