- 348 名前:はちみつ餃子 mailto:sage [2018/04/26(木) 09:45:48.32 ID:P0bCzIha0.net]
- 「技術的な」というときの技術は「プログラミング技術」の意味じゃないこともあるんだよ。
前置きが無い限り広すぎてあんまり意味ない。 実装がいくつもあるのに、仕様策定にあたっての言葉で出てくる「技術的な」なんだから文脈でわかれよ。 仕様に落とし込む難しさが元々の論点。 ハードリンクの話題は「同一のファイルとは何か」を定義する難しさの一例で、実装のことなんか言ってない。 このスレで既に上がっている選択肢だけでも ・ 内容が同じ ・ 絶対パスが同じ ・ #include ディレクティブ中の表現が同じ ・ inode が同じ (ハードリンクは同一とみなす) があり、内容の一致を選択する場合以外は言語の外の世界の環境に関する記述が必要になる。 世の中にある色んな環境のことを考慮して文面にする難しさってのはわかるだろ? そんなわけで、個人的には内容の一致だけで判定するのが (仕様として定義するにあたって) 一番簡単だと思う。 ODR に関するルールの中にも同じトークン列を要求するものがあるし。 それに加えて >>318 で取り上げた展開手順の規則をなんとかする必要はあるが、 >>321 に解を与えるような上手い簡単な規則は思いつかないな。 既に多く書かれてしまっているコードの現状との互換性を考えると >>322 のいうような、 #pragma once を書ける場所を制限するような規則は選択できないと思う。 結局は複雑なものにならざるを得ない。 そんなのほっといてモジュールの導入に邁進しようぜっていうのは妥当な方針だろ。
|

|