mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 20:27:11 +01:00 
			
		
		
		
	Cleaned up ResultInfoBuilder a bit
This commit is contained in:
		| @@ -19,53 +19,50 @@ class Expression { | ||||
|  | ||||
| public: | ||||
|     Expression( ResultInfoBuilder& result, T lhs ) | ||||
|     :   m_result( result ), | ||||
|     :   m_result( result.setLhs( Catch::toString( lhs ) ) ), | ||||
|         m_lhs( lhs ) | ||||
|     {} | ||||
|      | ||||
|     template<typename RhsT> | ||||
|     ResultInfoBuilder& operator == ( const RhsT& rhs ) { | ||||
|         return captureExpression<Internal::IsEqualTo>( m_result, m_lhs, rhs ); | ||||
|         return captureExpression<Internal::IsEqualTo>( rhs ); | ||||
|     } | ||||
|  | ||||
|     template<typename RhsT> | ||||
|     ResultInfoBuilder& operator != ( const RhsT& rhs ) { | ||||
|         return captureExpression<Internal::IsNotEqualTo>( m_result, m_lhs, rhs ); | ||||
|         return captureExpression<Internal::IsNotEqualTo>( rhs ); | ||||
|     } | ||||
|      | ||||
|     template<typename RhsT> | ||||
|     ResultInfoBuilder& operator < ( const RhsT& rhs ) { | ||||
|         return captureExpression<Internal::IsLessThan>( m_result, m_lhs, rhs ); | ||||
|         return captureExpression<Internal::IsLessThan>( rhs ); | ||||
|     } | ||||
|      | ||||
|     template<typename RhsT> | ||||
|     ResultInfoBuilder& operator > ( const RhsT& rhs ) { | ||||
|         return captureExpression<Internal::IsGreaterThan>( m_result, m_lhs, rhs ); | ||||
|         return captureExpression<Internal::IsGreaterThan>( rhs ); | ||||
|     } | ||||
|      | ||||
|     template<typename RhsT> | ||||
|     ResultInfoBuilder& operator <= ( const RhsT& rhs ) { | ||||
|         return captureExpression<Internal::IsLessThanOrEqualTo>( m_result, m_lhs, rhs ); | ||||
|         return captureExpression<Internal::IsLessThanOrEqualTo>( rhs ); | ||||
|     } | ||||
|      | ||||
|     template<typename RhsT> | ||||
|     ResultInfoBuilder& operator >= ( const RhsT& rhs ) { | ||||
|         return captureExpression<Internal::IsGreaterThanOrEqualTo>( m_result, m_lhs, rhs ); | ||||
|         return captureExpression<Internal::IsGreaterThanOrEqualTo>( rhs ); | ||||
|     } | ||||
|  | ||||
|     ResultInfoBuilder& operator == ( bool rhs ) { | ||||
|         return captureExpression<Internal::IsEqualTo>( m_result, m_lhs, rhs ); | ||||
|         return captureExpression<Internal::IsEqualTo>( rhs ); | ||||
|     } | ||||
|      | ||||
|     ResultInfoBuilder& operator != ( bool rhs ) { | ||||
|         return captureExpression<Internal::IsNotEqualTo>( m_result, m_lhs, rhs ); | ||||
|         return captureExpression<Internal::IsNotEqualTo>( rhs ); | ||||
|     } | ||||
|      | ||||
|     operator ResultInfoBuilder& () { | ||||
|         return m_result | ||||
|             .setLhs( Catch::toString( m_lhs ) ) | ||||
|             .setOp( "" ) | ||||
|             .setResultType( m_lhs ? ResultWas::Ok : ResultWas::ExpressionFailed ); | ||||
|         return m_result.setResultType( m_lhs ? ResultWas::Ok : ResultWas::ExpressionFailed ); | ||||
|     } | ||||
|      | ||||
|     template<typename RhsT> | ||||
| @@ -74,6 +71,15 @@ public: | ||||
|     template<typename RhsT> | ||||
|     STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator - ( const RhsT& ); | ||||
|  | ||||
| private: | ||||
|     template<Internal::Operator Op, typename RhsT> | ||||
|     ResultInfoBuilder& captureExpression( const RhsT& rhs ) { | ||||
|         return m_result | ||||
|             .setResultType( Internal::compare<Op>( m_lhs, rhs ) ? ResultWas::Ok : ResultWas::ExpressionFailed ) | ||||
|             .setRhs( Catch::toString( rhs ) ) | ||||
|             .setOp( Internal::OperatorTraits<Op>::getName() ); | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     ResultInfoBuilder& m_result; | ||||
|     T m_lhs; | ||||
|   | ||||
| @@ -53,21 +53,6 @@ private: | ||||
|     bool m_isFalse; | ||||
| }; | ||||
|  | ||||
| template<Internal::Operator Op, typename T1, typename T2> | ||||
| ResultInfoBuilder& captureExpression( ResultInfoBuilder& builder, const T1& lhs, const T2& rhs ) { | ||||
|     return builder | ||||
|     .setResultType( Internal::compare<Op>( lhs, rhs ) ? ResultWas::Ok : ResultWas::ExpressionFailed ) | ||||
|     .setLhs( Catch::toString( lhs ) ) | ||||
|     .setRhs( Catch::toString( rhs ) ) | ||||
|     .setOp( Internal::OperatorTraits<Op>::getName() ); | ||||
| } | ||||
|  | ||||
| template<Internal::Operator Op, typename T> | ||||
| ResultInfoBuilder& captureExpression( ResultInfoBuilder& builder, const T* lhs, int rhs ) { | ||||
|     return captureExpression<Op>( builder, lhs, reinterpret_cast<const T*>( rhs ) ); | ||||
| } | ||||
|  | ||||
|  | ||||
| } // end namespace Catch | ||||
|  | ||||
| #endif // TWOBLUECUBES_CATCH_RESULTINFO_BUILDER_H_INCLUDED | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Phil Nash
					Phil Nash