🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: enums

#746
From: Karl-Heinz Krause
Date: Tue, 07 Nov 1995 05:57
33 lines
1931 bytes
Am 6. Nov. 1995 schrieb Torsten Vogt (vogt@pi1.uni-mannheim.de):

> Hi, an alle, die ausser mir was zu diesem Thema gepostet haben. Wir 
> koennen uns natuerlich noch monatelang darueber unterhalten, wie man
> am besten enums organisiert, die Farben repraesentieren, um moeglichst
> wartungsfreundliche Programme zu schreiben. Weiterhin denke ich, dass
> alle Postings, die sich damit beschaeftigen eine sinnvolle Loesung
> angeboten haben. Aber darum ging es weder in der Frage, noch in meiner
> Antwort. Es ging 'drum, ob enums in jedem Fall aequivalent zu ints sind.
> Offenbar scheinen dies einige Compiler unterschiedlich streng zu handhaben.
> Benni - das war der urspruengliche Fragesteller - stellt diese Frage, dann
> auch noch mal konkreter in seinem zweiten Posting. 

> Also: Was sagt der Sprachstandard?

enums sind in C++ (anders als in C) *nicht* äquivalent zu ints. enums
werden zwar implizit nach int konvertiert, nicht aber umgekehrt. Daraus
folgt, daß zwar der folgende Ausdruck "a + b" erlaubt ist, wenn a und b
enums sind (da a und b nach int konvertiert werden); da das Ergebnis
dann aber von Typ int ist, ist die Zuweisung "a = a+b" nicht erlaubt.

Jedoch ist es möglich, zu einem enum Operatoren zu definieren. Beispiel:

	enum E { A, B };
	inline E operator+ (E x, E y) { return E(int(a)+int(b)); }

	E x = A;
	x = x + B;  // ist jetzt erlaubt

	


Karl-Heinz Krause
Technical Details
Message-ID: <47msfk$rjb@news00.btx.dtag.de>
Path: arc1-ca.pugleaf.net!news00.btx.dtag.de!not-for-mail
References: <47kf1l$r5c@trumpet.uni-mannheim.de>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!news00.btx.dtag.de!not-for-mail
From: Krause@btx.dtag.de (Karl-Heinz Krause)
Newsgroups: de.comp.lang.c++
Subject: Re: enums
Date: 7 Nov 1995 05:57:08 GMT
Organization: Telekom Online Internet Gateway
Message-ID: <47msfk$rjb@news00.btx.dtag.de>
References: <47kf1l$r5c@trumpet.uni-mannheim.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-Sender: 0913148778-0001@btx.dtag.de (Karl-Heinz Krause)
X-Newsreader: Forte Free Agent 1.0.82