C++コアガイドラインから派生した最新のC++(C++17/20/23)の包括的なコーディング標準。タイプセーフティ、リソースセーフティ、不変性、明確性を強制します。
enum vs enum class、生ポインタ対スマートポインタ)これらのテーマはガイドライン全体に繰り返され、基礎を形成:
const/constexprで開始;変更可能性は例外| Rule | Summary |
|---|---|
| P.1 | コード内のアイデアを直接表現 |
| P.3 | 意図を表現 |
| P.4 | 理想的には、プログラムは静的にタイプセーフである必要があります |
| P.5 | ランタイムチェックに対するコンパイル時チェック |
| P.8 | リソースをリークしない |
| P.10 | 変更可能なデータより不変データを好む |
| I.1 | インターフェースを明示的にする |
| I.2 | 非const グローバル変数を避ける |
| I.4 | インターフェースを正確にし、強く型付けされたものにする |
現代的なC++では、生ポインタの代わりにスマートポインタを使用:
std::unique_ptr<T> 単一所有者向けstd::shared_ptr<T> 共有所有権向けstd::weak_ptr<T> 循環参照を回避するため