foo()関数がなくてもコンパイル可能
int main()
{
// foo表
foo();
return 0;
}
flycheck は foo の未定義を検知していますが、clang++ でのコンパイル && 実行
clang++ -W a.cpp && ./a.out
は "Compilation:exit [0]" で正常終了しています。
これは、コンパイル オプション "-Wcomment" を付けると、文字「表」は改行を無視するコード
$ clang++ -Wcomment a.cpp
a.cpp:3:10: warning: multi-line // comment [-Wcomment]
// foo<95>\
^
1 warning generated.
この2行はコメント
// foo表
foo();
として扱われることが分かります。同様の文字は
S-JISではエスケープ文字 "\" 扱いになる場合がある
― ソ 十 表 能 申 貼 噂 浬 欺 圭 構 蚕 曾 箪 暴 予 禄 兔
喀 媾 彌 拿 杤 歃 濬 畚 秉 綵 臀 藹 觸 軆 鐔 饅 鷭 Ы
です。昔(主に前世紀)、「ソ」にはだいぶやられました。
ナントカの法則ではないけど、遭遇する可能性がゼロでないものは何故か出会してしまうので(運がいいのか悪いのか…)、無用なトラブルを避けるため行末に "." を付けるようにしています。
// コメント.