web-dev-qa-db-ja.com

C ++の生の文字列でR "()"をエスケープする

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

生の文字列内にR"()"があり、パーサーが混乱する場合。 (つまり、左端の_)"_は生の文字列の終わりであると考えました。

どうすればこれを脱出できますか?

10
One Two Three

raw-string literals [ 2 ]の形式は次のとおりです:R"delimiter( raw_characters )delimiter"

したがって、次のような文字列にない別の区切り文字を使用できます。

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

生の文字列は、最初の)"が検出された後に終了します。たとえば、区切り文字を***に変更できます。

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