static_assert( __cplusplus > 2020'99 ); #pragma once #include #include namespace Alepha::Hydrogen ::detail:: assertion_m { inline namespace exports { class ProgrammerExpectationViolation : public virtual Violation {}; inline void assertion( const bool b ) { #ifndef NDEBUG if( not b ) { throw build_exception< ProgrammerExpectationViolation >( "Expectation violated." ); } #endif } } } namespace Alepha::Hydrogen::inline exports::inline assertion_m { using namespace detail::assertion_m::exports; }