mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 12:17:11 +01:00 
			
		
		
		
	Use StringRef to pass comparison operator name to BinaryExpr
Some nominally C++11 platforms do not have SSO (I am looking at you libstdc++), where this avoids meaningless allocations.
This commit is contained in:
		| @@ -11,7 +11,7 @@ | ||||
|  | ||||
| namespace Catch { | ||||
|  | ||||
|     void formatReconstructedExpression( std::ostream &os, std::string const& lhs, std::string const& op, std::string const& rhs ) { | ||||
|     void formatReconstructedExpression( std::ostream &os, std::string const& lhs, StringRef op, std::string const& rhs ) { | ||||
|         if( lhs.size() + rhs.size() < 40 && | ||||
|                 lhs.find('\n') == std::string::npos && | ||||
|                 rhs.find('\n') == std::string::npos ) | ||||
|   | ||||
| @@ -32,13 +32,13 @@ namespace Catch { | ||||
|         virtual ~ITransientExpression() = default; | ||||
|     }; | ||||
|  | ||||
|     void formatReconstructedExpression( std::ostream &os, std::string const& lhs, std::string const& op, std::string const& rhs ); | ||||
|     void formatReconstructedExpression( std::ostream &os, std::string const& lhs, StringRef op, std::string const& rhs ); | ||||
|  | ||||
|     template<typename LhsT, typename RhsT> | ||||
|     class BinaryExpr  : public ITransientExpression { | ||||
|         bool m_result; | ||||
|         LhsT m_lhs; | ||||
|         std::string m_op; | ||||
|         StringRef m_op; | ||||
|         RhsT m_rhs; | ||||
|  | ||||
|         auto isBinaryExpression() const -> bool override { return true; } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Martin Hořeňovský
					Martin Hořeňovský