aboutsummaryrefslogtreecommitdiffstats
path: root/src/catch2/internal/catch_lazy_expr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/catch2/internal/catch_lazy_expr.cpp')
-rw-r--r--src/catch2/internal/catch_lazy_expr.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/catch2/internal/catch_lazy_expr.cpp b/src/catch2/internal/catch_lazy_expr.cpp
new file mode 100644
index 0000000..56a5ae5
--- /dev/null
+++ b/src/catch2/internal/catch_lazy_expr.cpp
@@ -0,0 +1,29 @@
+
+// Copyright Catch2 Authors
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE.txt or copy at
+// https://www.boost.org/LICENSE_1_0.txt)
+
+// SPDX-License-Identifier: BSL-1.0
+
+#include <catch2/internal/catch_lazy_expr.hpp>
+#include <catch2/internal/catch_decomposer.hpp>
+
+namespace Catch {
+
+ auto operator << (std::ostream& os, LazyExpression const& lazyExpr) -> std::ostream& {
+ if (lazyExpr.m_isNegated)
+ os << '!';
+
+ if (lazyExpr) {
+ if (lazyExpr.m_isNegated && lazyExpr.m_transientExpression->isBinaryExpression())
+ os << '(' << *lazyExpr.m_transientExpression << ')';
+ else
+ os << *lazyExpr.m_transientExpression;
+ } else {
+ os << "{** error - unchecked empty expression requested **}";
+ }
+ return os;
+ }
+
+} // namespace Catch