C++ 如何将const char16\u t*转换为std::string

C++ 如何将const char16\u t*转换为std::string,c++,string,char,constants,C++,String,Char,Constants,在N4606 ISO/IEC JTC1 SC22 WG21标准文件中, p、 34有一个例子 long double operator "" _w(long double); std::string operator "" _w(const char16_t*, std::size_t); unsigned operator "" _w(const char*); int main() { 1.2_w; // calls operator "" _w(1.2L) u"one"_w; //

在N4606 ISO/IEC JTC1 SC22 WG21标准文件中, p、 34有一个例子

long double operator "" _w(long double);
std::string operator "" _w(const char16_t*, std::size_t);
unsigned operator "" _w(const char*);
int main() {
  1.2_w; // calls operator "" _w(1.2L)
  u"one"_w; // calls operator "" _w(u"one", 3) 
  12_w; // calls operator "" _w("12")
  "two"_w; // error: no applicable literal operator
}
如何制作std::string运算符“”的示例(const char16\u t*,std::size\u t)

如何将const char16_t*转换为std::string

其他2个函数如下所示

long double operator "" _w(long double ld){return ld;}
unsigned operator "" _w(const char*cc){return (unsigned)*cc};

看一看:,特别是。这只是一个重载解析的例子,并不打算做任何实际的事情。它实际上取决于您想要支持的编码数据。utf16->utf8转换?