Skills Development C++ Coding Standards and Best Practices

C++ Coding Standards and Best Practices

v20260517
cpp-coding-standards
A comprehensive guide derived from C++ Core Guidelines, enforcing modern, safe, and idiomatic practices for C++17, C++20, and C++23. It emphasizes crucial principles like RAII, type safety, immutability, and proper resource ownership using smart pointers. Use this when writing new features, reviewing existing code, or making architectural decisions to ensure code quality and consistency.
Get Skill
387 downloads
Overview

C++コーディング標準(C++コアガイドライン)

C++コアガイドラインから派生した最新のC++(C++17/20/23)の包括的なコーディング標準。タイプセーフティ、リソースセーフティ、不変性、明確性を強制します。

使用時期

  • 新しいC++コードを書く(クラス、関数、テンプレート)
  • 既存のC++コードをレビューまたはリファクタリング
  • C++プロジェクトでアーキテクチャ決定を行う
  • C++コードベース全体で一貫性のあるスタイルを実施
  • 言語機能の選択(例:enum vs enum class、生ポインタ対スマートポインタ)

クロスカッティング原則

これらのテーマはガイドライン全体に繰り返され、基礎を形成:

  1. 至るところにRAII:リソースライフタイムをオブジェクトライフタイムにバインド
  2. デフォルトで不変性const/constexprで開始;変更可能性は例外
  3. タイプセーフティ:型システムを使用してコンパイル時にエラーを防止
  4. 意図を表現:名前、タイプ、概念は目的を伝える必要があります
  5. 複雑性を最小化:シンプルなコードが正しいコード
  6. 値セマンティクス対ポインタセマンティクス:値で返すか、スコープ付きオブジェクトを好む

主要なルール

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> 循環参照を回避するため
Info
Category Development
Name cpp-coding-standards
Version v20260517
Size 2.65KB
Updated At 2026-05-18
Language