namespace factor { void abort(); } #ifdef FACTOR_DEBUG #define FACTOR_ASSERT(condition) ((condition) \ ? (void)0 \ : ( \ ::fprintf(stderr, "assertion \"%s\" failed: file \"%s\", line %d\n", \ #condition, __FILE__, __LINE__), \ ::factor::abort() \ )) #else #define FACTOR_ASSERT(condition) ((void)0) #endif