IT++ Logo
itassert.h
Go to the documentation of this file.
00001 
00029 #ifndef ITASSERT_H
00030 #define ITASSERT_H
00031 
00032 #include <sstream>
00033 #include <string>
00034 
00035 
00036 namespace itpp
00037 {
00038 
00066 
00067 
00069 void it_assert_f(std::string ass, std::string msg, std::string file, int line);
00071 void it_error_f(std::string msg, std::string file, int line);
00073 void it_info_f(std::string msg);
00075 void it_warning_f(std::string msg, std::string file, int line);
00076 
00078 void it_enable_exceptions(bool on);
00080 void it_enable_warnings();
00082 void it_disable_warnings();
00084 void it_redirect_warnings(std::ostream *warn_stream);
00085 
00087 enum error_msg_style { Full, Minimum };
00088 
00090 void it_error_msg_style(error_msg_style style);
00091 
00092 
00094 #define it_assert(t,s)      \
00095   if (!(t)) {       \
00096     std::ostringstream m_sout;     \
00097     m_sout << s;      \
00098     itpp::it_assert_f(#t,m_sout.str(),__FILE__,__LINE__); \
00099   } else       \
00100     ((void) 0)
00101 
00102 #if defined(NDEBUG)
00103 
00104 #  define it_assert_debug(t,s) ((void) 0)
00105 #else
00106 
00107 #  define it_assert_debug(t,s) it_assert(t,s)
00108 #endif // if defined(NDEBUG)
00109 
00111 #define it_assert0(t,s) it_assert_debug(t,s)
00112 
00113 #define it_assert1(t,s) it_assert_debug(t,s)
00114 
00115 
00117 #define it_error_if(t,s)    \
00118   if((t)) {      \
00119     std::ostringstream m_sout;    \
00120     m_sout << s;     \
00121     itpp::it_error_f(m_sout.str(),__FILE__,__LINE__); \
00122   } else      \
00123     ((void) 0)
00124 
00126 #define it_error(s)     \
00127   if (true) {      \
00128     std::ostringstream m_sout;    \
00129     m_sout << s;     \
00130     itpp::it_error_f(m_sout.str(),__FILE__,__LINE__); \
00131   } else      \
00132     ((void) 0)
00133 
00134 
00136 #define it_info(s)    \
00137   if (true) {     \
00138     std::ostringstream m_sout;   \
00139     m_sout << s << std::endl;   \
00140     itpp::it_info_f(m_sout.str());  \
00141   } else     \
00142     ((void) 0)
00143 
00145 #define it_info_no_endl(s)   \
00146   if (true) {     \
00147     std::ostringstream m_sout;   \
00148     m_sout << s;    \
00149     itpp::it_info_f(m_sout.str());  \
00150   } else     \
00151     ((void) 0)
00152 
00153 #if defined(NDEBUG)
00154 
00155 #  define it_info_debug(s) ((void) 0)
00156 
00160 #  define it_info_no_endl_debug(s) ((void) 0)
00161 #else
00162 
00163 #  define it_info_debug(s) it_info(s)
00164 
00168 #  define it_info_no_endl_debug(s) it_info_no_endl(s)
00169 #endif // if defined(NDEBUG)
00170 
00171 
00173 #define it_warning(s)     \
00174   if (true) {      \
00175     std::ostringstream m_sout;    \
00176     m_sout << s;     \
00177     itpp::it_warning_f(m_sout.str(),__FILE__,__LINE__); \
00178   } else      \
00179     ((void) 0)
00180 
00182 
00183 } // namespace itpp
00184 
00185 #endif // #ifndef ITASSERT_H
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
SourceForge Logo

Generated on Sat Jul 9 2011 15:21:29 for IT++ by Doxygen 1.7.4