c++ u8"" msvc
时间: 2023-12-11 22:34:01 浏览: 148
vscode-msvc
在MSVC中,使用u8字符串文字初始化char的数组在C++20中会导致编译器错误C2440。可以通过指定/Zc:char8_t-将编译器显式恢复为C++14或C++17行为。以下是一个使用u8字符串文字初始化char数组的示例:
```c++
const char* s = u8"Hello"; // Compiles in C++17, Error C2440 in C++20
const char8_t* s = u8"Hello"; // Compiles in C++20 or with /Zc:char8_t
```
另外,使用字符串字面量,在字符串前加上u8,可以创建一个UTF-8字符串。例如:
```c++
char* s1 = u8"abc中文";
std::string s2(u8"abc中文");
```
阅读全文