Skip to content

Commit

Permalink
ディレクトリ構造のドキュメントを追加 #1114
Browse files Browse the repository at this point in the history
  • Loading branch information
faithandbrave committed Jan 21, 2023
1 parent c7b073e commit a7b952b
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 0 deletions.
1 change: 1 addition & 0 deletions start_editing.md
Expand Up @@ -104,6 +104,7 @@ Markdown形式では、HTMLのタグも併用できますが、cpprefjpサイト

- [ページファイル名の付け方](/start_editing/page_names.md)
- [乱数分布の図を作る方法](/start_editing/random_figure.md)
- [ディレクトリ構造](/start_editing/directory_structure.md)


## Pull Requestのレビューとマージ
Expand Down
33 changes: 33 additions & 0 deletions start_editing/directory_structure.md
@@ -0,0 +1,33 @@
# ディレクトリ構造
## lang
- cpp{version}.mdの形式で、各C++バージョンの言語機能ページを作る
- future.mdは、将来のC++で検討されている言語機能を記載するところである。導入予定だった機能が再検討になった場合などに使用する
- archive.mdは、廃案になったC++機能だが解説として残す価値のあるものがある場合に、記載するところである


## reference / module
- reference階層は、ヘッダベースのライブラリリファレンスで、その階層直下にはヘッダページを置く
- module階層は、モジュールベースのライブラリリファレンスで、その階層直下にはモジュールページを置く

reference階層とmodule階層は上記以外は同じであるため、以下、共通のルールを書きます。

### ヘッダ・モジュール階層
- ヘッダ・モジュール階層以下に、それに所属している機能のページを置く
- どのヘッダ・モジュールにも属さない機能の場合は、以下のように対応する
- 全体で使用する説明専用の機能は、仮のヘッダ`<exposion-only>`に属するものとして記載する


### クラス階層
- クラスに属するメンバ関数と型は、クラス階層の下に置く
- オーバーロードを意図している関数、そのクラス向けに特殊化した機能も、クラス階層の下に置き、機能の列挙としてもクラスページで行う
- オーバーロードを意図している関数の例は以下:
- 非メンバ関数の演算子
- `std::get()`
- `std::begin()`/`std::end()`およびそれに類するもの
- 演算子オーバーロードは、`operator<<` (出力ストリームへの出力) と `std::operator>>` (入力ストリームからの入力) を除き、左辺のクラスに属するものとする
- 特殊な例として、[`std::error_code`](/reference/system_error/error_code.md)[`std::error_condition`](/reference/system_error/error_condition.md)の比較演算子は、クラス階層ではなくヘッダ階層としている。これは所属関係がむずかしいためである


### コンセプト階層
- コンセプトによってオーバーロード・特殊化されている場合は、コンセプトの階層を作って、その下に置く。機能の列挙としてはヘッダページで行う

0 comments on commit a7b952b

Please sign in to comment.