-
Notifications
You must be signed in to change notification settings - Fork 162
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
非メンバ関数mdファイルの適切な配置位置 #245
Comments
|
統一はできていないのですが、非メンバ関数は基本的に、関連するクラスのディレクトリに置こうと思っています。 ヘッダのディレクトリに置くのは、swapや比較演算子の場合に問題になります。swap_for_pairとかのファイル名にはしたくないので。 |
ちなみに、 |
確かに非メンバ関数を一律ヘッダ直下にしてしまうと、ファイル名衝突のリスクもありますね… 結局、ケース・バイ・ケースでよきに計らいましょうという雰囲気でしょうか。 |
以後、類似ケースで参照されることも考えて、issueタイトルを一般化しました。 |
今のところ、ぼくから提案する方針としては、以下のようになります:
この「基本的に」が曖昧で、たとえば 「基本的に」に含まれると考えている部分で統一できていないところは、ぼくが把握している範囲では以下です:
|
http://www.cplusplus.com/reference/utility/pair/ の非メンバのところを見ると「Non-member function overloads」とか書いてたりしますね。 |
ぼくは関連性でまとめていましたが、オーバーロードを意図しているか否かでまとめると、明確でよさそうですね。そうしましょうか。 その方針にする場合は、以下のように修正することになります。
ここで |
オーバーロード/特殊化を意図している非メンバを、pairディレクトリに移動。 そうではない非メンバ関数であるmake_pairを、utilityディレクトリに移動。
オーバーロードを意図している演算子を、各クラスのディレクトリに移動。ただし、複数のクラスを組み合わせる演算子は、ヘッダのディレクトリに残し、各クラスのページからリンクを貼るようにした。
オーバーロードを意図していない非メンバ関数を、クラスのディレクトリではなく、ヘッダのディレクトリに移動した。
現在判明している、pair、chrono、tupleについて、上記方針で対応しました。 |
<utility>
ヘッダmake_pair
関数テンプレートの位置がおかしい気がします。pair
クラステンプレートのメンバではないため、utility直下にあるべき?The text was updated successfully, but these errors were encountered: