🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.c++
Article #963

Typ eines ?: Ausdruck?

#963
From: Ullrich von Bassewitz
Date: Wed, 06 Dec 1995 16:38
32 lines
1389 bytes
Und gleich nochmal eine Frage:

Welchen Typ hat das Ergebnis eines ?: Ausdrucks?

Grund fuer meine Frage ist wiederum ein Verhalten der neuen Version von gcc.
Und zwar wird ploetzlich ein Konstrukt wie

    Window* W = (A == B)? LastWindow : NULL;

mit einer Warnung kommentiert:
"ANSI C++ forbids implicit conversion from `void*' in initialization"

Was g++ da macht ist so ungefaehr klar: Der ?: Ausdruck wird ausgewertet,
das Ergebnis ist aber kein Window* (so wie frueher und bei allen anderen
Compilern die ich kenne), sondern es wird "void*" als kleinster gemeinsamer
Nenner gewaehlt, woraufhin die Zuweisung fehlschlaegt.

Ist das tatsaechlich nach dem neuen Standard richtig?

Wenn ich den ?: Ausdruck als andere Schreibweise fuer ein if ansehe, dann
ist es nicht richtig (if Ausdruecke werden von g++ auch korrekt gehandhabt),
andererseits hat ein if Statement auch keinen Ergebnistyp...

Gruss


        Uz



-- 
Ullrich von Bassewitz                              uz@ibb.schwaben.com
Technical Details
Message-ID: <RCD7B0RH@wuschel.ibb.schwaben.com>
Path: arc1-ca.pugleaf.net!wuschel.ibb.schwaben.com!not-for-mail

Show Full Headers
Complete Article Headers
Newsgroups: de.comp.lang.c++
Path: arc1-ca.pugleaf.net!wuschel.ibb.schwaben.com!not-for-mail
From: uz@wuschel.ibb.schwaben.com (Ullrich von Bassewitz)
Subject: Typ eines ?: Ausdruck?
Date: 06 Dec 1995 16:38:39 GMT
Message-ID: <RCD7B0RH@wuschel.ibb.schwaben.com>
Reply-To: uz@ibb.schwaben.com
Organization: Ingenieurbuero von Bassewitz
X-Newsreader: TIN [version 1.2 PL2]