B
Nexus schrieb:
Barade schrieb:
Bei dieser Klassenimplementation mit zwingender Initialisierung wird aber doch auch nicht überprüft, ob es ein gültiger enum-Wert ist, wenn ich das richtig sehe.
Spielt aber keine Rolle, da der Wert als Integer abgespeichert wird. Und die Schnittstelle bietet auch keine Möglichkeit, den originalen Typ ohne Cast zu erhalten.
Ja, stimmt auch wieder.
Nexus schrieb:
Barade schrieb:
Eigentlich müsste der Operator ja nur bool zurückgeben, zumindest bei dem & und es spielt dabei ja keine Rolle, ob ein gültiger Wert zurückgegeben wird.
Grundsätzlich kann man ja den resultierenden Typen weiterverwenden. Ausserdem gibt auch der ursprüngliche operator& keinen boolschen Wert zurück, sondern eine Ganzzahl (sowie auch die Operanden Ganzzahlen sind). Analog hier.
Also die Klasse sieht schon ganz praktisch aus und das mit dem normalen operator& weiß ich natürlich schon, aber wie gesagt, es war nur auf meinen Fall bezogen. Ich weiß noch nicht genau, wie ich das jetzt am besten umsetze. Die Sache war nur die, dass sich BOOST_SCOPED_ENUM dadurch inkompatibel zum neuen Standard verhält und ich den somit nicht ohne Weiteres benutzen kann.
Gut, gibt es bei den Open-Source-Compilern irgendwelche Empfehlungen oder Einschätzungen, wenn man auf den neuen Standard umsteigen will? Ich will das jetzt natürlich zu sehr ausweiten, daher genügt auch eine knappe Antwort. Ich bin mit dem gcc eigentlich ganz zufrieden, habe aber gelesen, dass llvm/clang auch nicht schlecht sein soll bzw. gibt es überhaupt noch andere?