cast unsigned short to int ??
-
Und wenn dir noch viel fader sein sollte, dann kannst Du auch so etwas schreiben:
#include <limits> #include <exception> class impossible_cast : public std::exception {}; template<typename T, typename U> T checked_cast(U const& arg) { T max = std::numeric_limits<T>::max(), min = std::numeric_limits<T>::min(); if (max < arg || umin > arg) { throw impossible_cast(); return arg; } /* unsigned u = ~0u; int i = checked_cast<int>(u); */
Das bringt zwar praktisch eher nichts, erhöht aber immerhin die Anzahl der pro Tag getippten Zeilen, erzeugt mehr oder minder tausendfach identischen Binärcode im Compilat und ist amüsant zu lesen.
Komme ich mit dem Code auch in den Quatsch Comedy Club?
-
Greenspun's 10th applied to Ada?
-
schön. hilft mir trotzdem nicht weiter...
-
Doch, hilft. Mit dem 'meinint = meinunsigned' ist dein Problem gelöst.
Original erstellt von Bashar:
Greenspun's 10th applied to Ada?Andere(?) nennen das lieber »defensives Programmieren«.
-
seid ihr alle verwirrt ??
ich kann weder den static_cast noch den dynamic-cast verwenden. (nein, den impossible_cast leider auch nicht. :D) und das mit dem operator= ist doch wohl eher ein schlech gemeinter scherz.
lw
-
Original erstellt von Lawilog:
**
ich kann weder den static_cast noch den dynamic-cast verwenden.**Warum nicht static_cast? Täte mich jetzt interessieren ...
-
*hust*
ich dachte ich hätte das als erstes probiert. *uups* naja, dieser ******** bush, dieses **** *********, *********** *********, hat mich wahrscheinlich in den wahnsinn getrieben. ich glaub ich geh jetzt mal wieder zur abwechslung schlafen.
danke.lw
-
dann probier doch noch mal
int i=int(s);
und
int i=s;
aus.
-
danke. aber es geht doch. hab ich doch gesagt, oder ?
-
Original erstellt von Lawilog:
danke. aber es geht doch. hab ich doch gesagt, oder ?nee.
-
Original erstellt von Lawilog:
das mit dem operator= ist doch wohl eher ein schlech gemeinter scherz.nein, das ist unser voller ernst