From 8d03cb4915ae5cae960bc069738c9050233ec79e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Ho=C5=99e=C5=88ovsk=C3=BD?= Date: Wed, 6 Sep 2017 15:15:48 +0200 Subject: [PATCH] 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. --- include/internal/catch_decomposer.cpp | 2 +- include/internal/catch_decomposer.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/internal/catch_decomposer.cpp b/include/internal/catch_decomposer.cpp index f7da22b5..f8b282dc 100644 --- a/include/internal/catch_decomposer.cpp +++ b/include/internal/catch_decomposer.cpp @@ -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 ) diff --git a/include/internal/catch_decomposer.h b/include/internal/catch_decomposer.h index c61ca856..48f87f60 100644 --- a/include/internal/catch_decomposer.h +++ b/include/internal/catch_decomposer.h @@ -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 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; }