2014-04-10 7 views
9

Ho una classe che ha funzioni may e voglio nascondere una funzione particolare. Ad esempioCome posso nascondere una funzione particolare (in C++) in doxygen?

class Test 
{ 

    /** 
    * About Function1 
    * 
    * @param[in] arg1 About arg1 
    * @param[in] arg2 About arg2 
    */   
    public void Function1(int arg1,char arg2); 

    // Presume same documentation for this function also 
    public void Function2(int,char); 

    // Presume same documentation for this function also 
    public void Function3(int,char); 

    // Presume same documentation for this function also 
    public void Function4(int,char); 
} 

Supponiamo di voler nascondere say Function2 come farei quello.

Ora nello scenario attuale vengono visualizzate tutte le quattro funzioni insieme alle relative documentazioni.

ora, ho il seguente set di attributi nel mio file di regole .doxygen:

EXTRACT_ALL = YES

Potete prego suggerire qualcosa con cui posso nascondere dire Function2?

Grazie in anticipo.

risposta

6

fare qualcosa di simile:

#ifndef DOXYGEN_SHOULD_SKIP_THIS 

/* code that must be skipped by Doxygen */ 
/* in your case a method/function */ 

#endif /* DOXYGEN_SHOULD_SKIP_THIS */ 

E nel file di configurazione, messo PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS Assicurarsi che ENABLE_PREPROCESSING è impostato su YES.

In breve, stai solo sfruttando il concetto del preprocessore per lavorare per te!

+0

Credo che la scrittura di questo sarà in rete il mio – Rana

+0

e perché esattamente pensi così? @Rana – CinCout

+0

grazie mille per una rapida risposta. Nel mio progetto ho circa 2000 file dispari ed è abbastanza impossibile fare questo cambiamento anche se sembra un'ottima soluzione.Se puoi suggerire qualcosa con cui metterò qualcosa nella documentazione e poi con qualche impostazione nel file di configurazione sarò in grado di saltare quella funzione. Grazie – Rana

0

Penso di aver usato una volta lo EXTRACT_SYMBOLS per ottenere qualcosa del genere.

Il tag EXCLUDE_SYMBOLS può essere utilizzato per specificare uno o più nomi di simboli (namespace, classi, funzioni, ecc) che devono essere esclusi dal uscita. Il nome del simbolo può essere un nome completo, una parola o se viene utilizzata la wildcard * *, una sottostringa. Esempi: ANamespace, Aclass, Aclass :: ANamespace, ANamespace :: * Test

Purtroppo non posso ricordare tutto, né trovare la voce config.

EXCLUDE_SYMBOLS = Test::Function2* 
+0

ho provato ad aggiungere il seguente codice come EXCLUDE_SYMBOLS = Agent :: Label (int) const per saltare questa funzione dall'output ma non ha funzionato dove Lebel è una funzione con la seguente signature void Label (int) const – Rana

7

Se avete EXTRACT_PRIVATE = NO nel file di configurazione, quindi è possibile contrassegnare qualsiasi membro da privato a Doxygen e non genererà documentazione per il membro: domanda

/// @private 
public void Function2(int, char); 

Bonus: se si voleva utilizzare la stessa documentazione per tutti e quattro i membri è possibile utilizzare uno di questi approcci:

/** 
* About Function1,2,3,4... 
*/ 
/// @{ 
public void Function1(int arg1, char arg2); 
public void Function2(int arg1, char arg2); 
public void Function3(int arg1, char arg2); 
public void Function4(int arg1, char arg2); 
/// @} 

/** 
* About Function1,2,3,4... 
*/ 
public void Function1(int arg1, char arg2); 
/// @copydoc Function1 
public void Function2(int arg1, char arg2); 
/// @copydoc Function1 
public void Function3(int arg1, char arg2); 
/// @copydoc Function1 
public void Function4(int arg1, char arg2); 

quella che utilizza @{ ... @} richiede l'uso di DISTRIBUTE_GROUP_DOC = YES nel file di configurazione.

6

Usa cond o interno

/*! \cond PRIVATE */ 
//only documented if cond is enabled 
// ... 
/*! \endcond */