Don't sanitize exception type in REQUIRE_THROWS_AS

Effectively a revert of previous commit, fixing #542, where this was
added to stop linters complaining about `REQUIRE_THROWS_AS` used like
`REQUIRE_THROWS_AS(expr, std::exception);`, which would be slicing the
caught exception. Now it is user's responsibility to pass us proper
exception type.

Closes #833 which wanted to add `typename`, so that the construct works
in a template, but that would not work with MSVC and older GCC's, as
having `typename` outside of a template is allowed only from C++11
onward.
This commit is contained in:
Martin Hořeňovský 2017-03-23 21:11:21 +01:00
parent 4597b43912
commit f23b6b8b85
2 changed files with 20 additions and 10 deletions

View file

@ -16,7 +16,6 @@
#include "catch_tostring.h"
#include "catch_interfaces_runner.h"
#include "catch_compiler_capabilities.h"
#include "catch_type_traits.hpp"
#if defined(CATCH_CONFIG_FAST_COMPILE)
@ -128,7 +127,7 @@
static_cast<void>(expr); \
__catchResult.captureResult( Catch::ResultWas::DidntThrowException ); \
} \
catch( Catch::add_const<Catch::add_lvalue_reference<exceptionType>::type>::type ) { \
catch( exceptionType ) { \
__catchResult.captureResult( Catch::ResultWas::Ok ); \
} \
catch( ... ) { \