翻訳フェーズ 2 の 2 番目の部分 ( N3485のセクション 2.2.2 ) では、基本的に、ソース ファイルが改行文字で終わっていない場合、コンパイラは改行文字で終わっているかのように処理する必要があると述べています。
ただし、正しく読んでいれば、空のソースファイルに対して明示的な例外が発生し、空のままになります。
正確なテキスト (強調を追加) は次のとおりです。
\
直後に改行文字が続くバックスラッシュ文字 ( ) の各インスタンスが削除され、物理ソース行が結合されて論理ソース行が形成されます。物理ソース行の最後のバックスラッシュのみが、そのようなスプライスの一部として適格です。その結果、汎用文字名の構文に一致する文字シーケンスが生成された場合、動作は未定義です。空ではなく、改行文字で終わらないソース ファイル、またはそのようなスプライシングが行われる直前にバックスラッシュ文字が直前にある改行文字で終わるソース ファイルは、追加の new-行文字がファイルに追加されました。
ソース ファイルが空であるか、改行文字だけで構成されているかによって違いが生じる状況を特定できませんでした。
誰かがこの要件の背後にある理由に光を当てることができることを願っています.