【问题标题】:escape R"()" in a raw string in C++在 C++ 中的原始字符串中转义 R"()"
【发布时间】:2018-08-31 04:20:26
【问题描述】:
  string raw_str = R"(R"(foo)")";

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

我该如何逃避?

【问题讨论】:

标签: c++ c++11 rawstring


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-26
      • 2023-01-24
      • 1970-01-01
      相关资源
      最近更新 更多