00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #ifndef _GLIBCXX_DEBUG_MACRO_SWITCH_H
00036 #define _GLIBCXX_DEBUG_MACRO_SWITCH_H 1
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052 namespace std
00053 {
00054 namespace __debug { }
00055 }
00056
00057
00058
00059
00060 namespace __gnu_debug
00061 {
00062 using namespace std::__debug;
00063 }
00064
00065 #ifndef _GLIBCXX_DEBUG
00066
00067 # define _GLIBCXX_DEBUG_ASSERT(_Condition)
00068 # define _GLIBCXX_DEBUG_PEDASSERT(_Condition)
00069 # define _GLIBCXX_DEBUG_ONLY(_Statement) ;
00070 # define __glibcxx_requires_cond(_Cond,_Msg)
00071 # define __glibcxx_requires_valid_range(_First,_Last)
00072 # define __glibcxx_requires_sorted(_First,_Last)
00073 # define __glibcxx_requires_sorted_pred(_First,_Last,_Pred)
00074 # define __glibcxx_requires_sorted_set(_First1,_Last1,_First2)
00075 # define __glibcxx_requires_sorted_set_pred(_First1,_Last1,_First2,_Pred)
00076 # define __glibcxx_requires_partitioned_lower(_First,_Last,_Value)
00077 # define __glibcxx_requires_partitioned_upper(_First,_Last,_Value)
00078 # define __glibcxx_requires_partitioned_lower_pred(_First,_Last,_Value,_Pred)
00079 # define __glibcxx_requires_partitioned_upper_pred(_First,_Last,_Value,_Pred)
00080 # define __glibcxx_requires_heap(_First,_Last)
00081 # define __glibcxx_requires_heap_pred(_First,_Last,_Pred)
00082 # define __glibcxx_requires_nonempty()
00083 # define __glibcxx_requires_string(_String)
00084 # define __glibcxx_requires_string_len(_String,_Len)
00085 # define __glibcxx_requires_subscript(_N)
00086
00087 #else
00088
00089 # include <cstdio>
00090 # include <debug/macros.h>
00091
00092 namespace std
00093 {
00094 namespace __debug
00095 {
00096
00097
00098 inline void
00099 __replacement_assert(const char* __file, int __line,
00100 const char* __function, const char* __condition)
00101 {
00102 printf("%s:%d: %s: Assertion '%s' failed.\n", __file, __line,
00103 __function, __condition);
00104 __builtin_abort();
00105 }
00106 }
00107 }
00108
00109 #define _GLIBCXX_DEBUG_ASSERT(_Condition) \
00110 do \
00111 { \
00112 if (! (_Condition)) \
00113 std::__debug::__replacement_assert(__FILE__, __LINE__, \
00114 __PRETTY_FUNCTION__, #_Condition); \
00115 } while (false)
00116
00117 #ifdef _GLIBCXX_DEBUG_PEDANTIC
00118 # define _GLIBCXX_DEBUG_PEDASSERT(_Condition) _GLIBCXX_DEBUG_ASSERT(_Condition)
00119 #else
00120 # define _GLIBCXX_DEBUG_PEDASSERT(_Condition)
00121 #endif
00122
00123 # define _GLIBCXX_DEBUG_ONLY(_Statement) _Statement
00124
00125 # define __glibcxx_requires_cond(_Cond,_Msg) _GLIBCXX_DEBUG_VERIFY(_Cond,_Msg)
00126 # define __glibcxx_requires_valid_range(_First,_Last) \
00127 __glibcxx_check_valid_range(_First,_Last)
00128 # define __glibcxx_requires_sorted(_First,_Last) \
00129 __glibcxx_check_sorted(_First,_Last)
00130 # define __glibcxx_requires_sorted_pred(_First,_Last,_Pred) \
00131 __glibcxx_check_sorted_pred(_First,_Last,_Pred)
00132 # define __glibcxx_requires_sorted_set(_First1,_Last1,_First2) \
00133 __glibcxx_check_sorted_set(_First1,_Last1,_First2)
00134 # define __glibcxx_requires_sorted_set_pred(_First1,_Last1,_First2,_Pred) \
00135 __glibcxx_check_sorted_set_pred(_First1,_Last1,_First2,_Pred)
00136 # define __glibcxx_requires_partitioned_lower(_First,_Last,_Value) \
00137 __glibcxx_check_partitioned_lower(_First,_Last,_Value)
00138 # define __glibcxx_requires_partitioned_upper(_First,_Last,_Value) \
00139 __glibcxx_check_partitioned_upper(_First,_Last,_Value)
00140 # define __glibcxx_requires_partitioned_lower_pred(_First,_Last,_Value,_Pred) \
00141 __glibcxx_check_partitioned_lower_pred(_First,_Last,_Value,_Pred)
00142 # define __glibcxx_requires_partitioned_upper_pred(_First,_Last,_Value,_Pred) \
00143 __glibcxx_check_partitioned_upper_pred(_First,_Last,_Value,_Pred)
00144 # define __glibcxx_requires_heap(_First,_Last) \
00145 __glibcxx_check_heap(_First,_Last)
00146 # define __glibcxx_requires_heap_pred(_First,_Last,_Pred) \
00147 __glibcxx_check_heap_pred(_First,_Last,_Pred)
00148 # define __glibcxx_requires_nonempty() __glibcxx_check_nonempty()
00149 # define __glibcxx_requires_string(_String) __glibcxx_check_string(_String)
00150 # define __glibcxx_requires_string_len(_String,_Len) \
00151 __glibcxx_check_string_len(_String,_Len)
00152 # define __glibcxx_requires_subscript(_N) __glibcxx_check_subscript(_N)
00153
00154 # include <debug/functions.h>
00155 # include <debug/formatter.h>
00156
00157 #endif
00158
00159 #endif // _GLIBCXX_DEBUG_MACRO_SWITCH_H