2013-02-25 6 views
8

Abbiamo un progetto C++ che documentiamo usando doxygen, inserendo solo i commenti doxygen nelle intestazioni per le classi, documentiamo le funzioni statiche all'interno di cpp.Avere doxygen consapevole dello spazio dei nomi in cpp

I file di configurazione doxygen raccolgono qualsiasi file header/hpp)/implementation/cpp) all'interno del progetto. Inoltre, abbiamo alcuni componenti indipendenti (ed esterni) che isoliamo all'interno dei namespace.

Il progetto è fatto in modo che usiamo polimorfismo (a causa di un uso estensivo di proxy pattern)

Come è una pratica comune, proibiamo il utilizzando direttiva all'interno dell'intestazione e lo usiamo in attuazione file.

In genere, abbiamo nell'intestazione:

/** 
* @brief 
* test from A 
*/ 
void f(N1::N2::A); 
/** 
* @brief 
* test from A 
*/ 
void f(N1::N2::B); 

All'interno l'attuazione, abbiamo

using namespace N1::N2; 

void f(A) { } 
void f(B) { } 

Quando si esegue doxygen, lui sembra confuso e produce messaggi di errore:

warning: no uniquely matching class member found for f(A) 
possible candidates: 
void f(N1::N2::A) 
void f(N1::N2::B) 

Qualche idea su come sbarazzarsi di questi errori e rendere consapevoli doxygen sulla direttiva "using"?

EDIT

+0

In generale, se si desidera una ricerca accurata del nome su codice C++, è necessario un front end C++ completo. AFAICT, Doxygen fa Non ho un finale completo in C++. (Per questo motivo mi sono sempre chiesto come gli utenti di C++ possano essere così innamorati di Doxygen, la mancanza di qualcosa di meglio?) Se sei fortunato, troverai una soluzione alternativa per casi speciali. –

+1

Mancanza di meglio, sicuramente Questo è ampiamente disponibile e si occupa anche di C ... – Bruce

+0

Dovresti pubblicare la tua modifica come risposta e accettarla, almeno fino a quando il bug non sarà corretto. –

risposta

0

Nessuna soluzione trovata, abbiamo ripristinato l'utilizzo dello spazio dei nomi completo nell'implementazione per corrispondere esattamente alla definizione delle intestazioni. Contrassegnato come chiuso, la mia perdita :-( Vedere commenti/modifica nella domanda potrebbe aiutare il lettore