mirror of
https://github.com/catchorg/Catch2.git
synced 2024-12-23 11:43:29 +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:
parent
b000411434
commit
8d03cb4915
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
namespace Catch {
|
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 &&
|
if( lhs.size() + rhs.size() < 40 &&
|
||||||
lhs.find('\n') == std::string::npos &&
|
lhs.find('\n') == std::string::npos &&
|
||||||
rhs.find('\n') == std::string::npos )
|
rhs.find('\n') == std::string::npos )
|
||||||
|
@ -32,13 +32,13 @@ namespace Catch {
|
|||||||
virtual ~ITransientExpression() = default;
|
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>
|
template<typename LhsT, typename RhsT>
|
||||||
class BinaryExpr : public ITransientExpression {
|
class BinaryExpr : public ITransientExpression {
|
||||||
bool m_result;
|
bool m_result;
|
||||||
LhsT m_lhs;
|
LhsT m_lhs;
|
||||||
std::string m_op;
|
StringRef m_op;
|
||||||
RhsT m_rhs;
|
RhsT m_rhs;
|
||||||
|
|
||||||
auto isBinaryExpression() const -> bool override { return true; }
|
auto isBinaryExpression() const -> bool override { return true; }
|
||||||
|
Loading…
Reference in New Issue
Block a user