00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00015 #ifndef __DERS__HARD_ASRT_HPP__
00016 #define __DERS__HARD_ASRT_HPP__
00017 
00018 #include <ders/config.hpp>
00019 
00020 namespace ders {  
00021 
00022 namespace detail {  
00023 
00024 void hard_assert_impl(const char* expr, const char* file, int line);
00025 
00026 }  
00027 
00028 }  
00029 
00033 #define hard_assert(expr) \
00034   ((expr) ? (void)0 : ders::detail::hard_assert_impl(#expr, __FILE__, __LINE__))
00035 
00036 #endif  // __DERS__HARD_ASRT_HPP__
00037