在C ++中的原始字符串中转义R“()”

时间:2018-03-21 21:15:31

标签: c++ c++11 rawstring

  string raw_str = R"(R"(foo)")";

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

如何逃避这个?

2 个答案:

答案 0 :(得分:16)

raw-string literals [2]的格式为:R"delimiter( raw_characters )delimiter"

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

string raw_str = R"~(R"(foo)")~";

答案 1 :(得分:6)

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

string raw_str = R"***(R"(foo)")***";