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:
Martin Hořeňovský 2017-09-06 15:15:48 +02:00
parent b000411434
commit 8d03cb4915
2 changed files with 3 additions and 3 deletions

View File

@ -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 )

View File

@ -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; }