C++ in Maguyva: grafi di classi e chiamate per grandi basi di codice
C++ nasconde il vero bersaglio di una chiamata dietro namespace, overload e dispatch virtuale. Il grafo aiuta un agente a trovarlo.
Estensioni
.c, .c++, .cc, .cpp, +6 altre
Maguyva supporta C con AST, simboli e grafo, così gli agenti IA seguono funzioni, struct, include e chiamanti nel codice di sistema, firmware e librerie.
C non ha classi né moduli per organizzare il codice. La struttura vive nelle chiamate di funzione, negli header e nelle struct, e lo stesso nome può comparire in commenti, macro e letterali stringa. Le macro di export e di annotazione avvolgono le dichiarazioni, mandando in crisi gli strumenti che sanno analizzare solo C puro. Per un agente, il primo passo sicuro è il grafo delle chiamate.
Maguyva costruisce questo grafo, così un agente vede cosa raggiunge una funzione e cosa la raggiunge prima di proporre una modifica.
Maguyva copre .c e .h. Le definizioni di funzione vengono estratte come simboli, e struct e union si possono selezionare come definizioni di tipo nella ricerca strutturale. Le direttive #include diventano relazioni di import.
Le macro di export e visibilità (pattern come FOO_API, DLLEXPORT o LIBEXPORT) e le macro di annotazione per la thread safety (come GUARDED_BY e REQUIRES) vengono mascherate prima dell’analisi, così le dichiarazioni avvolte vengono comunque riconosciute come dichiarazioni. I corpi delle macro di tipo funzione vengono analizzati; quelli delle macro di tipo oggetto no.
Il grafo registra chiamate, include, istanziazione tramite compound literal, riferimenti di tipo, letture e scritture, e flusso di controllo. Circa 124 chiamate della libreria standard C (printf, malloc, free, memcpy, strlen e simili) vengono filtrate dalle relazioni, così il codice del progetto risalta.
uart_write, direttamente o tramite altre funzioni?” (dependency_search incoming)config.h e quali sue struct usano?” (dependency_search, poi find_symbol)get_task_context).h compare negli elenchi di estensioni di C, C++ e Objective-C, quindi gli header multilinguaggio sono condivisi tra questi profili.text_pattern_search quando ti serve ogni malloc o memcpy.Collega un repository con la guida rapida, poi consulta la matrice di supporto nella pagina di compatibilità. Per il codice C++ nello stesso albero, leggi la guida a C++.
Il più adatto per
Workflow degli agenti
Dettagli del motore
Punti di ingresso MCP utili
Usalo con il nome di una funzione o di una struct quando ti servono la definizione e ogni riferimento.
Usa la navigazione incoming su una funzione condivisa prima di cambiarne la firma o la gestione degli errori.
Usalo per prompt come "spiega come un pacchetto passa dall'interrupt di ricezione al parser del protocollo".
Guide correlate
C++ nasconde il vero bersaglio di una chiamata dietro namespace, overload e dispatch virtuale. Il grafo aiuta un agente a trovarlo.
Estensioni
.c, .c++, .cc, .cpp, +6 altre
Rilevante quando vuoi assistenza AI in Rust senza perdere i guardrail strutturali che rendono Rust utile da usare.
Estensioni
.rs