enum - wer hat Recht? Compiler oder Buch ;)
-
Der Compiler hat recht, nimm in der Schleife statt Tag int oder size_t
-
CompilerIstImRecht schrieb:
nimm in der Schleife statt Tag int oder size_t
warum size_t und nicht double?
-
volkard schrieb:
CompilerIstImRecht schrieb:
nimm in der Schleife statt Tag int oder size_t
warum size_t und nicht double?
, was sollen denn Gleitkommazahlen in einer Aufzählung bringen?MfG SideWinder
-
SideWinder schrieb:
volkard schrieb:
CompilerIstImRecht schrieb:
nimm in der Schleife statt Tag int oder size_t
warum size_t und nicht double?
, was sollen denn Gleitkommazahlen in einer Aufzählung bringen?volkard benutzt wohl mal wieder seine sokratisches-fragen-methodik, um die leute zu veralbern...
-
SideWinder schrieb:
, was sollen denn Gleitkommazahlen in einer Aufzählung bringen?
, was soll denn ein size_t in einer Aufzählung bringen? warum ein teurer size_t mit 64 bit und kein time_t mit nur 32 bit? das ist doch die entscheidende frage. oder hat sich da einer angewöhnt, immer size_t statt unsigned zu schreiben?
-
provozieren ist okay, aber dann bitte nur reaktionen und nicht leute.

-
volkard schrieb:
[...]
, was soll denn ein size_t in einer Aufzählung bringen? warum ein teurer size_t mit 64 bit und kein time_t mit nur 32 bit? das ist doch die entscheidende frage. oder hat sich da einer angewöhnt, immer size_t statt unsigned zu schreiben?size_t für den Fall, dass enum größer ist als int
-
#include <iostream> using namespace std; enum Tage {Montag, Dienstag, Mittwoch, Donerstag, Freitag, Samstag, Sonntag}; int main() { for(Tage m = Montag; m < Sonntag; m = static_cast<Tage>((static_cast<int>(m)+1))) { cout<<m<<endl; } }Das geht auch :p
, jedenfalls läßt es sich kompilieren, ob es eine Endlosschleife gibt, hab ich aber noch nicht getestet, sollte aber gehen.Felix
-
würde nicht
m = Tage(m+1)reichen?
-
Das gibt imo kein Sinn so etwas zu machen bei enums. Denn man kann auch sowas machen:
enum myEnum { a, b = 123, c };Also kann es auf jeden Fall generell nicht gehen.
Gruß
-
Fireflow[off] schrieb:
Das gibt imo kein Sinn so etwas zu machen bei enums. Denn man kann auch sowas machen:
enum myEnum { a, b = 123, c };Also kann es auf jeden Fall generell nicht gehen.
Grußgenau deswegen geht es nicht ohne cast. der cast ist meine botschaft an den compiler "vertrauen sie mir, ich weiß, was ich tue".
-
CompilerIstImRecht schrieb:
size_t für den Fall, dass enum größer ist als int
Was aber praktisch unwahrscheinlich ist.
It is implementation-defined which integral type is used as the underlying type for an enumeration except that the underlying type shall not be larger than int unless the value of an enumerator cannot fit in an int or unsigned int.
Was im konkreten Fall bedeuten würde, int kann nicht den Wert 6 darstellen. Und dann bringt size_t wohl auch nichts mehr.
-
Der Autor ist der Meinung das ein Destruktor die Überladung des Bit-Komplement-Operators darstellt - ich wunder mich gerade warum das Buch schon in der 6. Auflage erschienen ist - bei uns wurde es sogar in der C++ Vorlesung empfohlen...
-
LOL!
-
das geilste was ich bisher im Buch gesehen habe:
#include <iostream> using namespace std; template<int N> class Fakultaet { public: enum{value = N*Fakultaet<N-1>::value}; }; template<> class Fakultaet<0> { public: enum{value = 1}; }; int main() { const int x = Fakultaet<6>::value; cout << x <<endl; cin.get(); return 0; }
-
Vertexwahn schrieb:
das geilste was ich bisher im Buch gesehen habe:
#include <iostream> using namespace std; template<int N> class Fakultaet { public: enum{value = N*Fakultaet<N-1>::value}; }; template<> class Fakultaet<0> { public: enum{value = 1}; }; int main() { const int x = Fakultaet<6>::value; cout << x <<endl; cin.get(); return 0; }wo ist daran das problem?
könnte breymann sein, der sich an metaprogrammierung wagt, obwohl das buch für anfänger ist.
-
Was der Bauer nicht kennt, das frisst er net :p
-
Vertexwahn schrieb:
Der Autor ist der Meinung das ein Destruktor die Überladung des Bit-Komplement-Operators darstellt
Kannst du mal das exakte Zitat angeben? Wenn er nämlich von Überladung des ~-Zeichens sprechen sollte, hätte er recht.
-
Überladung des ~-Zeichens sprechen sollte, hätte er recht.
tut er aber nicht - zu faul jetzt zu zitieren - er schreibt ausdrücklich der ~Operator wird überladen
-
Vertexwahn schrieb:
Überladung des ~-Zeichens sprechen sollte, hätte er recht.
tut er aber nicht - zu faul jetzt zu zitieren - er schreibt ausdrücklich der ~Operator wird überladen
