Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
c7b073e
commit a7b952b
Showing
2 changed files
with
34 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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)の比較演算子は、クラス階層ではなくヘッダ階層としている。これは所属関係がむずかしいためである | ||
|
||
|
||
### コンセプト階層 | ||
- コンセプトによってオーバーロード・特殊化されている場合は、コンセプトの階層を作って、その下に置く。機能の列挙としてはヘッダページで行う | ||
|