Ben*_*oit 11 c++ string-literals c++11
它在C和C++中有效打破字符串文字,因为预处理器或编译器将连接相邻的字符串文字.
const char *zStr = "a" "b"; // valid
Run Code Online (Sandbox Code Playgroud)
当字符串文字以L(宽字符),u(UTF-16),U(UTF-32),u8(UTF-8)和原始字符串文字(R"foo(this is a "raw string literal" with double quotes)foo")作为前缀时会发生什么?
例如,允许以下内容:
const wchar_t *zStr = L"a" "b"; // valid?
Run Code Online (Sandbox Code Playgroud)
How*_*ant 12
在C++ 0x中,根据[lex.string]/p13,您的示例有效:
...如果一个字符串文字没有编码前缀,则将其视为与另一个操作数相同的编码前缀的字符串文字....
在C++ 03中,同一部分表示此代码具有未定义的行为:
...如果窄字符串文字标记与宽字符串文字标记相邻,则行为未定义....
| 归档时间: |
|
| 查看次数: |
1866 次 |
| 最近记录: |