force_cast
-
Was haltet ihr von meinem force_cast?
template<class Dest, class Src> Dest force_cast(Src src) { union { Dest d; Src s; } convertor; convertor.s = src; return convertor.d; }
-
ich schaffs nicht, damit nen char* in nen std::string zu verwandlen? wie muß ich den caster umbauen, damit das geht?
Und was muß ich bauen, damit ein std::string in nen char* verwandelt wird?
Und wie mach ich nen std::sting zu nem long?
-
template<class D, class T> D& hard_cast(T& t) { return *reinterpret_cast<D*>(&t); }
-
Original erstellt von <Caster>:
**Was haltet ihr von meinem force_cast?template<class Dest, class Src> Dest force_cast(Src src) { union { Dest d; Src s; } convertor; convertor.s = src; return convertor.d; }
**
Lustige Idee, macht nur leider keinen Sinn.
-
Lustige Idee, macht nur leider keinen Sinn.
Macht nicht nur keinen Sinn. Macht auch gleich noch undefiniertes Verhalten obendrein dazu.
-
Macht auch gleich noch undefiniertes Verhalten obendrein dazu.
Funzt aber auf allen von mir je verwendeten Plattformen, auch wenn ich es nie machen würde. Wenn es keinen anderen Weg gäbe könnte man das sicherlich als plattformspezifischen Hack durchgeghen lassen.
nur ist ein
... = reinterpret_cast<Destination&>(Source);
doch wesentlich einfacher. Oder wer es unbedingt will auch wie Lars mit Zeigern. Nur wo liegt da der Vorteil?
-
zum funktionszeiger in int konvertieren
-
Original erstellt von <idee>:
zum funktionszeiger in int konvertierenWas man ja auch immer braucht
-
zum funktionszeiger in int konvertieren
Hurra. Nochmal undefiniertes Verhalten.
[ Dieser Beitrag wurde am 28.03.2003 um 17:14 Uhr von HumeSikkins editiert. ]
-
Original erstellt von volkard:
Und wie mach ich nen std::sting zu nem long?std::sting kannst du höchstens in std::joe_cocker umwandeln :p
Juchu ich hab nen Tippfehler gefunden
-
boah bist du lustig
-
Original erstellt von <we want peace>:
boah bist du lustigNicht wahr???