mirror of
https://github.com/catchorg/Catch2.git
synced 2025-11-17 11:19:33 +01:00
switch from ->* to <= in expression decomposer
<= chosen arbitrarily from comparison operators, but any of <=, >=, <, > have the same precedence. This now allows expressions containing any of *, /, %, +, -, << and >> to be used on the LHS. No tests broke, and the corresponding originally failing test in [tricky] was expanded and added to the main suite.
This commit is contained in:
@@ -33,7 +33,7 @@
|
||||
do { \
|
||||
Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \
|
||||
try { \
|
||||
( __catchResult->*expr ).endExpression(); \
|
||||
( __catchResult <= expr ).endExpression(); \
|
||||
} \
|
||||
catch( ... ) { \
|
||||
__catchResult.useActiveException( Catch::ResultDisposition::Normal ); \
|
||||
|
||||
@@ -41,8 +41,8 @@ namespace Catch {
|
||||
ResultDisposition::Flags resultDisposition );
|
||||
|
||||
template<typename T>
|
||||
ExpressionLhs<T const&> operator->* ( T const& operand );
|
||||
ExpressionLhs<bool> operator->* ( bool value );
|
||||
ExpressionLhs<T const&> operator<= ( T const& operand );
|
||||
ExpressionLhs<bool> operator<= ( bool value );
|
||||
|
||||
template<typename T>
|
||||
ResultBuilder& operator << ( T const& value ) {
|
||||
@@ -93,11 +93,11 @@ namespace Catch {
|
||||
namespace Catch {
|
||||
|
||||
template<typename T>
|
||||
inline ExpressionLhs<T const&> ResultBuilder::operator->* ( T const& operand ) {
|
||||
inline ExpressionLhs<T const&> ResultBuilder::operator<= ( T const& operand ) {
|
||||
return ExpressionLhs<T const&>( *this, operand );
|
||||
}
|
||||
|
||||
inline ExpressionLhs<bool> ResultBuilder::operator->* ( bool value ) {
|
||||
inline ExpressionLhs<bool> ResultBuilder::operator<= ( bool value ) {
|
||||
return ExpressionLhs<bool>( *this, value );
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user