Is this legal under C++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";
Yes, that is perfectly valid. See here.
Also, from the (draft) standard:
A source-file new-line in a raw string literal results in a new-line in the resulting execution string-literal, unless preceded by a backslash. Assuming no whitespace at the beginning of lines in the following example, the assert will succeed:
const char *p = R"DELIM(a\ b c)DELIM"; assert(std::strcmp(p, "a\\\nb\nc") == 0);