Fix unreachable code warning from MSVC

When building Catch-based projects with aggressive MSVC warning levels
(eg, with /Wall /W4 /WX flags), then Catch can give a warning here.
This commit is contained in:
Nik Reiman 2016-03-29 12:29:14 +02:00
parent f4ba8aaf19
commit 922121a2d2
2 changed files with 15 additions and 5 deletions

View File

@ -373,8 +373,13 @@ namespace Clara {
} }
virtual void setFlag( C& obj ) const { virtual void setFlag( C& obj ) const {
typename RemoveConstRef<T>::type value; typename RemoveConstRef<T>::type value;
convertInto( true, value ); try {
function( obj, value ); convertInto(true, value);
}
catch (std::runtime_error&) {
return;
}
function(obj, value);
} }
virtual bool takesArg() const { return !IsBool<T>::value; } virtual bool takesArg() const { return !IsBool<T>::value; }
virtual IArgFunction<C>* clone() const { return new BoundBinaryFunction( *this ); } virtual IArgFunction<C>* clone() const { return new BoundBinaryFunction( *this ); }

View File

@ -1,6 +1,6 @@
/* /*
* Catch v2.0.0-develop.2 * Catch v2.0.0-develop.2
* Generated: 2015-12-15 07:54:24.857561 * Generated: 2016-03-29 15:50:47.051000
* ---------------------------------------------------------- * ----------------------------------------------------------
* This file has been merged from multiple headers. Please don't edit it directly * This file has been merged from multiple headers. Please don't edit it directly
* Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved. * Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
@ -3673,8 +3673,13 @@ namespace Clara {
} }
virtual void setFlag( C& obj ) const { virtual void setFlag( C& obj ) const {
typename RemoveConstRef<T>::type value; typename RemoveConstRef<T>::type value;
convertInto( true, value ); try {
function( obj, value ); convertInto(true, value);
}
catch (std::runtime_error&) {
return;
}
function(obj, value);
} }
virtual bool takesArg() const { return !IsBool<T>::value; } virtual bool takesArg() const { return !IsBool<T>::value; }
virtual IArgFunction<C>* clone() const { return new BoundBinaryFunction( *this ); } virtual IArgFunction<C>* clone() const { return new BoundBinaryFunction( *this ); }