2016-03-30 79 views
1

Kısa sürümü

ile kullanılmayan işlev parametreleri ele ı tanımlayan kullanılmayan değişkenleri hakkında bir uyarı yükselterek gelen derleyici engellemek için sıra makro UNUSED: Bu makro sonra kullanılırDoxygen: "KULLANILMAYAN" makro

UNUSED(x)=x __attribute__((__unused__)) 

bazı işlevlerin prototipleri içinde, örneğin:

Ancak
void ext(int foo, int UNUSED(bar)) 

, doxygen bu konuda mutsuz ve bazı uyarılar verir:

/tmp/sandbox/main.cpp:13: warning: argument 'bar' of command @param is not found in the argument list of Dummy::ext(int foo, intUNUSEDbar) 
/tmp/sandbox/main.cpp:13: warning: The following parameters of Dummy::ext(int foo, intUNUSEDbar) are not documented: 
    parameter 'UNUSED' 

UNUSED makrosunu yok saymak için doxygen'e nasıl söylemeliyim?

Uzun versiyon

ben şöyle bir koda sahip aşağıdadır:

g++ -D 'UNUSED(x)=x __attribute__((__unused__))' main.cpp 

Doxyfile ben adlandırılmış varsayılan doxygen yapılandırma dosyası oluşturmak için:

#include <iostream> 

class Dummy 
//! Dummy class 
{ 
public : 

    //!Dummy function 
    /** 
    * \param foo First variable 
    * \param bar Second variable 
    */ 
    void ext(int foo, int UNUSED(bar)) 
    { 
     std::cout << "foo = " << foo << std::endl; 
    } 
}; 


//!Main function 
int main(void) 
{ 
    Dummy MyDummy; 
    MyDummy.ext(1, 2); 
    return 0; 
} 

Ben çağırarak derlemek girin:

doxygen -g 

Sonunda, dokümantasyon oluşturmak için ben girin:

doxygen Doxyfile 

ikincisi komut çıkışları aşağıdaki uyarı: aşağıdaki parametrelere sahiptir, böylece doxygen documentation den

/tmp/sandbox/main.cpp:13: warning: argument 'bar' of command @param is not found in the argument list of Dummy::ext(int foo, intUNUSEDbar) 
/tmp/sandbox/main.cpp:13: warning: The following parameters of Dummy::ext(int foo, intUNUSEDbar) are not documented: 
    parameter 'UNUSED' 
+0

Kullanım kılavuzunun önişlemci bölümüne bir göz attınız mı? Belki UNIDED (x) doxyfile bir PREDEFINED – albert

+0

yardımcı olabilir [sadece ön işleme üzerinde doxygen doktora] (http://www.stack.nl/~dimitri/doxygen/manual/preprocessing.html): aslında , hepsi burada açıklandı! Bahşiş için teşekkürler ! –

cevap

2

ardından talimatları, Doxyfile değiştirmek : doxygen Doxyfile hayır çağırarak bu değişikliklerden sonra

#Doxygen will run its own preprocessor before parsing the file 
ENABLE_PREPROCESSING = YES 

#The Doxygen preprocessor will not only define the macros (default 
#behaviour) but also expand them 
MACRO_EXPANSION  = YES 

#The Doxygen preprocessor will only expand the macros that are listed in 
#the PREDEFINED setting. Any other macro will merely be defined, and not 
#expanded. 
EXPAND_ONLY_PREDEF  = YES 

#The Doxygen preprocessor will replace any occurrence of the UNUSED 
#macro by its argument 
PREDEFINED    = UNUSED(x)=x 

, daha uzun uyarıları artırır.