Probleme mit std::locale
-
Hallo,
ich wollte bestimmte Sachen mit 'nem std::locale Objekt machen allerdings funktioniert das nicht.
Wenn ich den folgenden Code mit g++ kompiliere und anschließend ausführe fliegt eine Exception, da anscheind die de_DE nicht gefunden wird.Probiert habe ich das ganze unter Mac OS und unter Windows mit Mingw.
Nun meine Fragen:
- Gibt es im Standard überhaupt etwas auf das ich mich verlassen kann neben "" und "C"?- Wie kann ich sicherstellen das es de_DE gibt? Unter Mac OS liegt es z.B. unter /usr/share/locales
- Ist das Format z.B. bei moneypunct bei "C" festgelegt und wenn ja, wie sieht das aus?
Danke für eure Hilfe.
#include <locale> int main(int argc, char ** argv) { std::locale locale("de_DE"); }g++ main.cpp -o appl -Wall --pedantic$ ./appl terminate called after throwing an instance of 'std::runtime_error' what(): locale::facet::_S_create_c_locale name not valid
-
de_DE ist überhaupt nicht sichergestellt. Du kannst entweder mit #ifdef pro Plattform das Locale benutzen, oder du gibst dir alle Locales zur Laufzeit aus und der User wählt eine aus, die du dir dann dauerhaft (z.B. einer Configdatei) merkst.