cpp
C++17/20標準に基づくモダンなC++開発のガイドラインを提供し、メモリ安全性とパフォーマンス最適化を支援するスキルです。安全で高効率なコードの設計・実装が必要な場面で活躍します。
description の原文を見る
Guidelines for modern C++ development with C++17/20 standards, memory safety, and performance optimization
SKILL.md 本文
C++ 開発ガイドライン
C++17/20 標準、メモリ管理、高性能プログラミングに関する深い知識を持つモダン C++ 開発のエキスパートです。
コードスタイルと構造
- C++17/20 標準に従ったクリーンでモダンな C++ コードを記述する
- 意味のある変数名と関数名を使用する
- 単一責任の原則に従う
- 継承より合成を好む
- 関数は小さく、焦点を絞る
命名規則
- クラスと構造体には PascalCase を使用
- 関数、変数、メソッドには camelCase を使用
- 定数とマクロには SCREAMING_SNAKE_CASE を使用
- 名前空間には snake_case を使用
- メンバ変数には
m_プレフィックスを付けるか、末尾にアンダースコアを使用
メモリ管理
スマートポインタ
- 排他的所有権には
std::unique_ptrを使用 - 共有所有権が必要な場合にのみ
std::shared_ptrを使用 - 循環参照を防ぐために
std::weak_ptrを使用 - 生のポインタによる所有を避ける
RAII (Resource Acquisition Is Initialization)
- すべてのリソース管理に RAII を使用
- リソースを適切なデストラクタを持つクラスでラップ
- RAII を通じて例外安全性を保証
- クリーンアップ操作にはスコープガードを使用
ベストプラクティス
- ヒープ割り当てよりスタック割り当てを好む
std::make_uniqueとstd::make_sharedを使用- アプリケーションコードで
newとdeleteを避ける - 生の配列の代わりにコンテナを使用
モダン C++ の機能
C++17 の機能
- タプルのアンパックに構造化バインディングを使用
- 存在しない可能性がある値には
std::optionalを使用 - 型安全な共用体には
std::variantを使用 - コンパイル時の条件分岐には
if constexprを使用 - 非所有文字列参照には
std::string_viewを使用
C++20 の機能
- テンプレート制約にはコンセプトを使用
- より整潔なアルゴリズムにはレンジを使用
- 非所有配列ビューには
std::spanを使用 - 非同期操作にはコルーチンを使用
- より高速なコンパイルにはモジュールを使用 (対応している場合)
エラーハンドリング
- エラーハンドリングには例外を使用
- ドメイン固有のエラーにはカスタム例外タイプを定義
- 例外をスローしない関数には
noexceptを使用 - 例外は const 参照でキャッチ
- 可能な限り強い例外保証を提供
パフォーマンス
constとconstexprを積極的に使用std::moveを使用したムーブセマンティクスを好むstd::forwardを使用した完璧なフォワーディングを使用- 不要なコピーを避ける
- 最適化の前にプロファイルを実施
- 小さく頻繁に呼び出される関数には
inlineを使用
セキュリティ
バッファ安全性
- C スタイル配列の代わりに
std::arrayを使用 - 境界チェック付きの
std::vectorを使用 - C スタイル文字列の代わりに
std::stringを使用 - 配列ビューには
std::spanを使用
型安全性
- C スタイルキャストを避け、
static_cast、dynamic_castなどを使用 - 平文の enum の代わりに
enum classを使用 NULLの代わりにnullptrを使用- コンパイラ警告を有効にしてエラーとして扱う
並行処理
- スレッド処理には
std::threadとstd::jthreadを使用 - 同期には
std::mutexとstd::lock_guardを使用 - ロックフリー操作には
std::atomicを使用 - シンプルな非同期操作には
std::asyncを好む - スレッド調整には条件変数を使用
テスト
- Google Test または Catch2 でユニットテストを記述
- Google Mock のようなモッキングフレームワークを使用
- エッジケースとエラー状態をテスト
- テスト中は Sanitizer (ASan、UBSan、TSan) を使用
- 継続的インテグレーション テストを実装
ドキュメント
- ドキュメントに Doxygen スタイルのコメントを使用
- 公開 API を徹底的にドキュメント化
- ドキュメントに使用例を含める
- ドキュメントをコード変更と同期させておく
- スレッド安全性の要件をドキュメント化
ビルドシステム
- クロスプラットフォーム ビルドには CMake を使用
- コードを論理的なモジュールに編成
- 依存関係には vcpkg や Conan などのパッケージマネージャを使用
- コンパイラ警告と静的解析を有効化
- 適切なデバッグとリリースビルドを構成
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- mindrally
- リポジトリ
- mindrally/skills
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/mindrally/skills / ライセンス: Apache-2.0
関連スキル
superfluid
Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper
civ-finish-quotes
実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。
nookplot
Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。
web3-polymarket
Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。
ethskills
Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。
xxyy-trade
このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。