2009-11-02 6 views
9

Sono sicuro che c'è un modo per farlo con i tag \ defgroup, \ addgroup e \ @ {\ @}, ma dopo un paio di ore di prova e (ovviamente) errore, sto chiedendo COSÌ ... ..Come associare funzioni non membri a una classe in Doxygen?

ho:

class C { 
public: 
    void foo() const; 
}; 

e ho alcune funzioni non-membri di supporto che in realtà fanno parte dell'interfaccia di C, ma non sono nella classe:

std::string 
format (const C& c, const std::string &fmt); 

I' mi piace che la funzione di formattazione appaia nella stessa pagina delle funzioni di classe. È solo impossibile? È il meglio che posso fare una pagina "modulo", che elenca C come una classe (con un collegamento ipertestuale ai commenti di C e il formato come funzione?

risposta

13

\relates (o \ memberof) sembra essere quello che stai cercando.

+0

Um ... sì ... ora mi sento un idiota per averlo perso. Penso di aver bisogno di rileggere la sezione dei comandi speciali dei documenti. Non ricordo di aver visto \ related usato in un esempio. –

0

Creare un gruppo e assegnare funzioni al di fuori della classe in quel gruppo sarà lavoro, ma nella stessa documentazione di classe, non si otterranno riferimenti alle funzioni a meno che non si utilizzino comandi come @see o @sa. Onestamente, poiché una funzione accetta un parametro documentato, non significa che questa funzione sia automaticamente parte della libreria, ma è possibile collegare entrambe le classi e le funzioni insieme usando @defgroup e @addgroup.

+4

Se la funzione si trova nello stesso file di intestazione rispetto alla definizione della classe, c'è un'alta probabilità che dovrebbe figurare con la classe nella documentazione. Vedi la definizione di Herb Sutter di "interfaccia pubblica". –

+1

Come dice Matthieu ...... fa parte dell'interfaccia. Ecco perché volevo sapere se c'è un modo per farli apparire sulla stessa pagina. –