C++中原始字符串文本的d-char-sequence有什么作用?

4
在这个参考链接中:https://en.cppreference.com/w/cpp/language/string_literal,原始字符串被定义为:
 prefix(optional) R"d-char-sequence(optional)(r-char-sequence(optional))d-char-sequence(optional)"

示例:

const char* s1 = R"foo(
Hello
  World
)foo";
(在上面的示例中为“foo”)的目的是什么?
2个回答

13

可选的 d-char-sequence 用于定义原始字符串的结束标记。

例如,如果原始字符串包含子字符串 )",则以下行会引发语法错误:

const char* s = R"(string with )" inside)";

可以通过使用未在原始字符串中出现的可选 d-char-sequence 来解决此问题:

const char* s = R"uniq(string with )" inside)uniq";


6
它使您能够嵌入)",否则将被视为字面量的结尾。

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