在 C++ 中的原始字符串中转义 R"()"
escape R"()" in a raw string in C++
string raw_str = R"(R"(foo)")";
如果我在原始字符串中包含 R"()"
,这会导致解析器混淆。 (即,它认为最左边的 )"
是原始字符串的末尾。
我该如何逃脱?
原始字符串将在它看到第一个 )"
后终止。您可以将分隔符更改为 ***
例如:
string raw_str = R"***(R"(foo)")***";
raw-string literals[2] 的格式是:R"delimiter( raw_characters )delimiter"
因此您可以使用不在字符串中的不同 分隔符,例如:
string raw_str = R"~(R"(foo)")~";
string raw_str = R"(R"(foo)")";
如果我在原始字符串中包含 R"()"
,这会导致解析器混淆。 (即,它认为最左边的 )"
是原始字符串的末尾。
我该如何逃脱?
原始字符串将在它看到第一个 )"
后终止。您可以将分隔符更改为 ***
例如:
string raw_str = R"***(R"(foo)")***";
raw-string literals[2] 的格式是:R"delimiter( raw_characters )delimiter"
因此您可以使用不在字符串中的不同 分隔符,例如:
string raw_str = R"~(R"(foo)")~";