diff --git a/include/internal/catch_common.h b/include/internal/catch_common.h index c4ac2967..ad393c52 100644 --- a/include/internal/catch_common.h +++ b/include/internal/catch_common.h @@ -116,29 +116,16 @@ namespace Catch { T const& operator + ( T const& value, StreamEndStop ) { return value; } - - template - class Error { - std::ostringstream m_oss; - - public: - template - auto operator <<( T const& value ) -> Error& { - m_oss << value; - return *this; - } - - [[noreturn]] - void raise() { - throw ExceptionT( m_oss.str() ); - } - }; } -#define CATCH_INTERNAL_LINEINFO ::Catch::SourceLineInfo( __FILE__, static_cast( __LINE__ ) ) -#define CATCH_INTERNAL_ERROR( msg ) do{ ( ::Catch::Error() << CATCH_INTERNAL_LINEINFO << ": Internal Catch error: " << msg ).raise(); } while(false) -#define CATCH_ERROR( msg ) ( ::Catch::Error<>() << msg ).raise() -#define CATCH_ENFORCE( condition, msg ) do{ if( !(condition) ) CATCH_ERROR( msg ); } while(false) +#define CATCH_INTERNAL_LINEINFO \ + ::Catch::SourceLineInfo( __FILE__, static_cast( __LINE__ ) ) +#define CATCH_INTERNAL_ERROR( msg ) \ + throw std::logic_error( ( std::ostringstream() << CATCH_INTERNAL_LINEINFO << ": Internal Catch error: " << msg ).str() ) +#define CATCH_ERROR( msg ) \ + throw std::domain_error( ( std::ostringstream() << msg ).str() ) +#define CATCH_ENFORCE( condition, msg ) \ + do{ if( !(condition) ) CATCH_ERROR( msg ); } while(false) #endif // TWOBLUECUBES_CATCH_COMMON_H_INCLUDED