原始内容
高亮显示
复制内容
//============================================================================= // File : utilities.h // Created : mar jun 19 13:18:14 CEST 2001 // Author : Antoine YESSAYAN, Paul RASCLE, EDF // Project : SALOME // Copyright : EDF 2001 // $Header$ //============================================================================= /* --- Definition macros file to print information if _DEBUG_ is defined --- */ # ifndef UTILITIES_H # define UTILITIES_H # include <stdlib.h> //# include <iostream> ok for gcc3.01 # include <iostream> /* --- INFOS is always defined (without _DEBUG_): to be used for warnings, with release version --- */ # define HEREWEARE cout<<flush ; cerr << __FILE__ << " [" << __LINE__ << "] : " << flush ; # define INFOS(chain) {HEREWEARE ; cerr << chain << endl ;} # define PYSCRIPT(chain) {cout<<flush ; cerr << "---PYSCRIPT--- " << chain << endl ;} /* --- To print date and time of compilation of current source on stdout --- */ # if defined ( __GNUC__ ) # define COMPILER "g++" ; # elif defined ( __sun ) # define COMPILER "CC" ; # elif defined ( __KCC ) # define COMPILER "KCC" ; # elif defined ( __PGI ) # define COMPILER "pgCC" ; # else # define COMPILER "undefined" ; # endif # ifdef INFOS_COMPILATION # error INFOS_COMPILATION already defined # endif # define INFOS_COMPILATION {\ cerr << flush;\ cout << __FILE__ ;\ cout << " [" << __LINE__ << "] : " ;\ cout << "COMPILED with " << COMPILER ;\ cout << ", " << __DATE__ ; \ cout << " at " << __TIME__ << endl ;\ cout << "\n\n" ;\ cout << flush ;\ } # ifdef _DEBUG_ /* --- the following MACROS are useful at debug time --- */ # define HERE cout<<flush ; cerr << "- Trace " << __FILE__ << " [" << __LINE__ << "] : " << flush ; # define SCRUTE(var) HERE ; cerr << #var << "=" << var << endl ; # define MESSAGE(chain) {HERE ; cerr << chain << endl ;} # define INTERRUPTION(code) HERE ; cerr << "INTERRUPTION return code= " << code << endl ; exit(code) ; # ifndef ASSERT # define ASSERT(condition) if (!(condition)){ HERE ; cerr << "CONDITION " << #condition << " NOT VERIFIED"<< endl ; INTERRUPTION(1) ;} # endif /* ASSERT */ #define REPERE cout<<flush ; cerr << " --------------" << endl << flush ; #define BEGIN_OF(chain) {REPERE ; HERE ; cerr << "Begin of: " << chain << endl ; REPERE ; } #define END_OF(chain) {REPERE ; HERE ; cerr << "Normal end of: " << chain << endl ; REPERE ; } # else /* ifdef _DEBUG_*/ # define HERE # define SCRUTE(var) # define MESSAGE(chain) # define INTERRUPTION(code) # ifndef ASSERT # define ASSERT(condition) # endif /* ASSERT */ #define REPERE #define BEGIN_OF(chain) #define END_OF(chain) # endif /* ifdef _DEBUG_*/ # endif /* ifndef UTILITIES_H */
您还没有登录,登录后您可以:
首次使用?从这里 注册