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上,awchar\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);