+
+#ifdef NDEBUG
+#define assert( ignore ) do { \
+ if(!(expression)) { _PDCLIB_UNREACHABLE; } \
+ } while(0)
+
+#elif _PDCLIB_C_MIN(99)
+#define assert(expression) \
+ do { if(!(expression)) { \
+ _PDCLIB_assert99("Assertion failed: " _PDCLIB_symbol2string(expression)\
+ ", function ", __func__, \
+ ", file " __FILE__ \
+ ", line " _PDCLIB_symbol2string( __LINE__ ) \
+ "." _PDCLIB_endl ); \
+ _PDCLIB_UNREACHABLE; \
+ } \
+ } while(0)
+