Casten?
-
Hi,
kann man folgende Typen richtig casten?
wchar_t -> signed char
char -> wchar_t
unsigned char -> char
signed char -> unsigned charkann man da einfach mit static_cast<typ> dran gehen?
-
wchar_t -> signed char
Kann man mit static_cast casten, ist aber problematisch. Besser wäre die Verwendung von narrow.
#include <locale> #include <stdlib.h> int main() { wchar_t w = ...; signed char s = std::use_facet<std::ctype<wchar_t> >(std::locale::classic()).narrow(w, ' '); // oder wctomb((char*)&s, w); }
char -> wchar_t
Geht mit static_cast. Besser ist wohl widen:
#include <locale> #include <stdlib.h> int main() { char s = ...; wchar_t w = std::use_facet<std::ctype<char> >(std::locale::classic()).widen(s); // oder mbtowc(&w, &s, 1); }
unsigned char -> char
Geht mit static_cast.
unsigned char -> char
Geht mit static_cast.