MaguyvaのC++対応: 大規模コードのクラスとコールグラフ
C++は本当の呼び出し先を、名前空間、オーバーロード、仮想ディスパッチの裏に隠します。グラフはエージェントがそれを見つける助けになります。
拡張子
.c, .c++, .cc, .cpp, ほか6件
Cには、コードを整理するためのクラスやモジュールがありません。構造は関数呼び出し、ヘッダー、構造体の中にあり、同じ名前がコメント、マクロ、文字列リテラルにも現れます。エクスポート用やアノテーション用のマクロが宣言を包むため、素のCしか解析できないツールはつまずきます。エージェントにとって安全な第一歩は、コールグラフです。
Maguyvaはそのグラフを構築するため、エージェントは変更を提案する前に、関数が何に到達し、何から到達されるのかを確認できます。
Maguyvaは .c と .h に対応しています。関数定義はシンボルとして抽出され、構造体と共用体は構造検索で型定義として選択できます。#include ディレクティブはインポートの関係になります。
エクスポートと可視性のマクロ(FOO_API、DLLEXPORT、LIBEXPORT のようなパターン)とスレッド安全性のアノテーションマクロ(GUARDED_BY や REQUIRES など)は解析前にマスクされるため、それらに包まれた宣言も宣言として解析されます。関数形式マクロの本体は解析されますが、オブジェクト形式マクロの本体は解析されません。
グラフには、呼び出し、インクルード、複合リテラルによるインスタンス化、型参照、読み取りと書き込み、制御フローが記録されます。約124個の標準Cライブラリの呼び出し(printf、malloc、free、memcpy、strlen など)は関係性から除外されるため、プロジェクトのコードが際立ちます。
uart_write を、直接またはほかの関数経由で呼び出しているのは誰か?」(dependency_search の incoming)config.h をインクルードしているファイルはどれで、そのどの構造体を使っているか?」(dependency_search、次に find_symbol)get_task_context).h はC、C++、Objective-Cの拡張子リストに含まれているため、複数言語が混在するヘッダーはこれらのプロファイル間で共有されます。malloc や memcpy が必要なときは text_pattern_search を使ってください。クイックスタートでリポジトリを接続し、互換性ページで対応マトリクスを確認してください。同じツリーにC++のコードがある場合は、C++ガイドをご覧ください。
最適な用途
エージェントワークフロー
エンジンの詳細
役立つMCPエントリーポイント
定義とすべての参照が必要なときに、関数や構造体の名前で使ってください。
共有関数のシグネチャやエラー処理を変更する前に、incomingのトラバーサルを使ってください。
「受信割り込みからプロトコルパーサーまで、パケットがどう流れるかを説明して」のようなプロンプトに使ってください。
関連ガイド
C++は本当の呼び出し先を、名前空間、オーバーロード、仮想ディスパッチの裏に隠します。グラフはエージェントがそれを見つける助けになります。
拡張子
.c, .c++, .cc, .cpp, ほか6件
Rustを使う価値をもたらしている構造的なガードレールを失うことなく、RustでAI支援を受けたいときに関連性があります。
拡張子
.rs