volatile
-
Es ist ganz sicher eine Altlast, aber es gibt noch unglaublich viele C++ Programmierer (die Mehrzahl?), die das so schreibt. Ich fürchte, damit muss man sich abfinden.
-
Optimizer schrieb:
Ich fürchte, damit muss man sich abfinden.
mich stört's nicht. c++ gibt dem user viele freiheiten. (nur c ist noch besser :D). dass dabei manchmal so'n mist rauskommt wie 'heimliche' konvertierung von pointern in bools muss man einfach tolerieren...
-
HumeSikkins schrieb:
template <class T> ostream& operator<<(ostream& os, volatile T* ptr) { // ... os << const_cast<T*>(ptr); return os; }
ist aber nicht viel besser, als UB
sollte doch wohl eher so heißen:template <class T> ostream& operator<<(ostream& os, T const volatile * ptr) { // ... os.operator<<(const_cast<T*>(ptr)); //oder: out << static_cast<void*>(const_cast<T*>(t)); return os; }