C++0x の最新のドラフトである n3126 には、次のように書かれています。
直後に改行文字が続くバックスラッシュ文字 (\) の各インスタンスが削除され、物理ソース行が結合されて論理ソース行が形成されます。
...
生の文字列リテラルのr-char-sequence内では、フェーズ 1 と 2 で実行された変換 (trigraph、universal-character-names、および line splicing) が元に戻されます。
技術的には、これは C++ プリプロセッサがバックスラッシュとそれに続く改行文字のみを認識することを意味しますが、一部の C++ 実装では Windows または従来の Mac スタイルの行末も許可されていることを知っています。
\
生の文字列の r-char-sequence 内でバックスラッシュ文字の直後に続く改行シーケンスを保持するために、C++0x の適合する実装が必要になりますか? より良い質問は、Windows C++0x コンパイラが各行のスプライスを"\\\r\n"
の代わりに元に戻すことが期待されるでしょう"\\\n"
か?