在WCHAR*和wstring之间转换,而不使用构造函数
Converting between WCHAR* to wstring without use of constructor
我有一个wchar数组,需要使用winapi函数将数据写入其中,我想在std::wstring
中获得它,我知道std::wstring t(wText);
可以工作,但我不能在if语句中声明它,因为它不存在于该范围之外。此外,我不能以这种方式调用构造函数:
WCHAR wText[256];
std::wstring t = L"";
if (somecondition)
{
t = t(wText);
}
我能做什么?当不满足条件时,我希望wstring
等于""
,当满足条件时我希望将WCHAR数组放入其中。
您可以通过调用表达式中的构造函数来构造临时std::wstring
对象,如下所示:
t = std::wstring(wText);
相关文章:
- 构造函数和转换运算符之间的重载解析
- 为什么在使用转换构造函数赋值后调用C++类的析构函数?
- enable_if转换构造函数(静态强制转换,is_base_of)
- 参数包构造函数在类模板中隐藏用户定义的转换
- c++ 构造函数 将 1 个字符串参数转换为 3 个属性
- 复制构造函数隐式转换问题
- 没有合适的构造函数可以从"float"转换为"_D3DCOLORVALUE"
- 如果存在从"双精度"到"T"的转换,则禁用构造函数
- C++隐式构造函数转换,后跟类型向上转换
- 此语法中的构造函数转换错误
- C 操作员在具有构造函数转换时过载
- 如何在允许拷贝限制的同时禁用隐式构造函数转换
- 构造函数转换
- 通过构造函数转换容器
- C++ "没有合适的构造函数可以从<默认构造函数>转换为参数化构造函数
- 多个隐式构造函数转换
- (涉及显式)运算符和构造函数转换的优先级
- 构造函数转换如何在C++中工作
- 如何修复GCC编译中的const char *构造函数转换链错误
- 隐式构造函数转换的编译器优化