mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-05-19 05:41:14 +08:00
Translate everything-claude-code repository to Japanese including: - 17 root documentation files - 60 agent documentation files - 80 command documentation files - 99 rule files across 18 language directories (common, angular, arkts, cpp, csharp, dart, fsharp, golang, java, kotlin, perl, php, python, ruby, rust, swift, typescript, web) - 199 skill documentation files Total: 455 files translated to Japanese with: - Consistent terminology glossary applied throughout - YAML field names preserved in English (name, description, etc.) - Code blocks and examples untouched (comments translated) - Markdown structure and relative links preserved - Professional translation maintaining technical accuracy This translation expands ECC accessibility to Japanese-speaking developers and teams. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
50 lines
2.7 KiB
Markdown
50 lines
2.7 KiB
Markdown
---
|
||
name: cpp-coding-standards
|
||
description: C++コアガイドラインに基づくC++コーディング標準(isocpp.github.io)。現代的で安全で慣用的なプラクティスを強制するためにC++コードを書き、レビュー、またはリファクタリングする場合に使用します。
|
||
origin: ECC
|
||
---
|
||
|
||
# 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>` 循環参照を回避するため
|