Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
218 views
in Technique[技术] by (71.8m points)

c++ - In C++11, can raw string literals have multiple lines?

Is this legal under C++11?

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

... being equivalent to:

string s = "This is the first line
And this is the second line";
question from:https://stackoverflow.com/questions/22668264/in-c11-can-raw-string-literals-have-multiple-lines

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Yes, that is perfectly valid. See here.

Also, from the (draft) standard 2.14.5/4:

A source-file new-line in a raw string literal results in a new-line in the resulting execution string-literal. Assuming no whitespace at the beginning of lines in the following example, the assert will succeed:

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...