C++ 逃逸R";()";在C++;

C++ 逃逸R";()";在C++;,c++,c++11,rawstring,C++,C++11,Rawstring,如果原始字符串中有R“()”,这会导致解析器混淆。(即,它认为最左边的)“是原始字符串的结尾 如何转义?原始字符串将在它看到的第一个)“后终止。您可以将分隔符更改为***,例如: string raw_str = R"(R"(foo)")"; []的格式为:R“分隔符(原始字符)分隔符” 因此,您可以使用不在字符串中的其他分隔符,如: string raw_str = R"***(R"(foo)")***"; 可能重复的 string raw_str = R"~(R"(foo)")~";

如果原始字符串中有
R“()”
,这会导致解析器混淆。(即,它认为最左边的
)“
是原始字符串的结尾


如何转义?

原始字符串将在它看到的第一个
)“
后终止。您可以将分隔符更改为
***
,例如:

  string raw_str = R"(R"(foo)")";
[]的格式为:
R“分隔符(原始字符)分隔符”

因此,您可以使用不在字符串中的其他分隔符,如:

string raw_str = R"***(R"(foo)")***";
可能重复的
string raw_str = R"~(R"(foo)")~";