C++ 如何将字符串文本传递给接受const std::wstring&;的函数;

C++ 如何将字符串文本传递给接受const std::wstring&;的函数;,c++,C++,我有一个函数,它采用const std::wstring&font\u族,即 Font Font::CreateFont(const std::wstring& font_family){ ... } 问题是我如何通过传递字符串文字(例如monospace)来调用该函数 我试过了 CreateFont("monospace"); CreateFont("std::wstring("monospace") ); 两者都不能编译。 有人有更好的主意吗 谢谢。试试: CreateFont(

我有一个函数,它采用
const std::wstring&
font\u族,即

Font Font::CreateFont(const std::wstring& font_family){ ... }
问题是我如何通过传递字符串文字(例如monospace)来调用该函数

我试过了

CreateFont("monospace");
CreateFont("std::wstring("monospace") );
两者都不能编译。 有人有更好的主意吗

谢谢。

试试:

CreateFont(L"monospace");
前导的“L”指示编译器生成宽(wchar_t)字符串


wstring的ctor不接受窄字符,只接受宽字符。

一般来说,L“字符串文字”生成宽字符(
wchar\u t
)字符串文字(这正是您想要的
std::wstring
)正是
wchar\u t
所依赖的平台。在Windows上,a
wchar\u t
存储UTF-16代码点,但在其他平台上,它可以表示UTF-32代码点。请注意,平台依赖性与答案无关。L“”是一个
wchar\u t[]
,而
std::wstring
需要一个
wchar\u t*
,因此这适用于所有系统,无论
wchar\u t
是8位、16位、32位还是42位。
std::wstring s(L"Monospace");
CreateFont(s);