Подтвердить что ты не робот

В С++ 11 могут ли строки строковых литералов иметь несколько строк?

Является ли это законным в С++ 11?

string s = R"(This is the first line
And this is the second line)";

... эквивалентно:

string s = "This is the first line\nAnd this is the second line";
4b9b3361

Ответ 1

Да, это совершенно верно. См. здесь.

Кроме того, из (черновика) стандарта 2.14.5/4:

Новая строка в исходном файле в строковом литерале приводит к новой строке в результате выполнения строкового литерала. Предполагая пробелы в начале строк в в следующем примере утверждение будет успешным:

const char *p = R"(a\
b
c)";
assert(std::strcmp(p, "a\\\nb\nc") == 0);