在下面的函数(从另一个Stackoverflow帖子中修改)中,我试图使用unique_ptr
,以便稍后释放由new
分配的内存。
在这里做std::wstring(res.get())
是否安全?也就是说,在调用字符串构造函数时是否会复制res
,以便如果释放由new
分配的内存,返回的值不会成为垃圾?
std::wstring narrow_to_wide_str(const std::string& input) {
size_t size = input.size() + 1;
size_t out_size;
std::unique_ptr<wchar_t[]> res{ new wchar_t[size] };
mbstowcs_s(&out_size,res.get(),size,input.c_str(),size - 1);
return std::wstring(res.get());
}