在C++中的原始字符串中如何转义R"()"?

22
  string raw_str = R"(R"(foo)")";
如果我在原始字符串中有R"()"这样的内容,会导致解析器产生混淆(即,它认为最左边的)"是原始字符串的结尾)。
我该如何转义?

2个回答

37

原始字符串字面值的格式为:R"delimiter( raw_characters )delimiter",详情请参见Raw-string literals[2]。

因此,您可以使用一个不在字符串中的不同分隔符(delimiter),例如:

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

12

原始字符串在遇到第一个 )" 时会终止。您可以将分隔符更改为例如 ***

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接