Article View: de.comp.lang.c++
Article #963Typ eines ?: Ausdruck?
From: Ullrich von Bassewitz
Date: Wed, 06 Dec 1995 16:38
Date: Wed, 06 Dec 1995 16:38
32 lines
1389 bytes
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-mailShow 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]