nimmt haben eine Funktion, die const std::wstring&
FONT_FAMILY nimmt, das heißtWie eine Stringliteral auf eine Funktion zu übergeben, die ich const std :: wstring &
Font Font::CreateFont(const std::wstring& font_family){ ... }
Durch Frage ist, wie kann ich ein Zeichenfolgenliteral, dass funcion rufen, indem (zB Monospace)?
Ich versuchte
CreateFont("monospace");
CreateFont("std::wstring("monospace"));
Beide nicht kompiliert. Hat jemand eine bessere Idee?
Vielen Dank.
Im Allgemeinen L „Stringliteral“ erzeugt ein Breitzeichen ('wchar_t') Stringliteral (das ist genau was Sie für 'std :: wstring' wollen.) Genau was' wchar_t' ist, ist plattformabhängig. Unter Windows speichert 'wchar_t' einen UTF-16-Codepunkt, auf anderen Plattformen kann er jedoch beispielsweise einen UTF-32-Codepunkt darstellen. – jamesdlin
Beachten Sie, dass die Plattformabhängigkeit für die Antwort keine Rolle spielt. L "" ist ein 'wchar_t []' und 'std :: wstring' will ein' wchar_t * ', also funktioniert das auf allen Systemen, ob' wchar_t' 8, 16, 32 oder 42 Bits ist. – MSalters