If I have a multi-line string C++11 string constant such as
1 2 3 | <span class="pln">R</span><span class="str">"""</span><span class="pln">line </span><span class="lit">1</span><span class="pln"> line </span><span class="lit">2</span><span class="pln"> line3</span><span class="str">"""</span> |
Is it defined what character(s) the line terminator/separator consist of?
Context: sending a multi-line string to a server with well-defined end-of-line requirements.
The standard seems to indicate that:
1 2 3 | <span class="pln">R</span><span class="str">"""</span><span class="pln">line </span><span class="lit">1</span><span class="pln"> line </span><span class="lit">2</span><span class="pln"> line3</span><span class="str">"""</span> |
is equivalent to:
1 | <span class="str">"line 1\nline 2\nline3"</span> |
From 2.14.5 String literals of the C++11 standard:
4 [ Note: 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:
1234 <span class="kwd">const</span> <span class="kwd">char</span> <span class="pun">*</span><span class="pln">p </span><span class="pun">=</span><span class="pln"> R</span><span class="str">"(</span><span class="pln">a\bc</span><span class="pun">)</span><span class="str">";</span><span class="pln">assert</span><span class="pun">(</span><span class="pln">std</span><span class="pun">::</span><span class="pln">strcmp</span><span class="pun">(</span><span class="pln">p</span><span class="pun">,</span> <span class="str">"a\\\nb\nc"</span><span class="pun">)</span> <span class="pun">==</span> <span class="lit">0</span><span class="pun">);</span>—end note ]
5 [ Example: The raw string
1234 <span class="pln">R</span><span class="str">"</span><span class="pln">a</span><span class="pun">(</span><span class="pun">)</span><span class="pln">\a</span><span class="str">"</span><span class="pun">)</span><span class="pln">a</span><span class="str">"</span>is equivalent to
"\n)\\\na\"\n"
.