.. _program_listing_file_src_rdf4cpp_Assert.hpp: Program Listing for File Assert.hpp =================================== |exhale_lsh| :ref:`Return to documentation for file ` (``src/rdf4cpp/Assert.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef RDF4CPP_ASSERT_HPP #define RDF4CPP_ASSERT_HPP #include #include #ifdef NDEBUG #define RDF4CPP_ASSERT(expr) \ if (!(expr)) [[unlikely]] { \ std::cerr << std::format("Assertion failed: {} ({}:{})", #expr, __FILE__, __LINE__); \ std::abort(); \ } #define RDF4CPP_UNREACHABLE \ std::cerr << std::format("Unreachable statement reached ({}:{})", __FILE__, __LINE__); \ std::abort(); #define RDF4CPP_DEBUG_UNREACHABLE(...) return __VA_ARGS__ #else #define RDF4CPP_ASSERT(expr) assert(expr) #define RDF4CPP_UNREACHABLE assert(false) #define RDF4CPP_DEBUG_UNREACHABLE(...) assert(false) #endif #define RDF4CPP_DEBUG_ASSERT(expr) assert(expr) #endif //RDF4CPP_ASSERT_HPP