xtd 0.2.0
Loading...
Searching...
No Matches
expression_stream.hpp
Go to the documentation of this file.
1
4#pragma once
6#include <ostream>
7
9namespace xtd {
11 namespace expressions {
22 template <typename expression_t>
29
31 template <typename expression_t>
32 auto operator<<(std::ostream& os, const expression_stream<expression_t>& ps) -> std::ostream& {
33 if (ps.parent_precedence < expression_t::precedence) os << "(" << ps.expression << ")";
34 else os << ps.expression;
35 return os;
36 }
38 }
39}
40
operator_precedence
Specifies the operator precedence.
Definition operator_precedence.hpp:22
constexpr auto operator<<(left_t left, right_t right)
Subtract the specified left and right operands.
Definition left_shift_expression.hpp:127
The xtd::expressions namespace provides a lightweight, composable expression template framework for b...
Definition add_expression.hpp:14
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition abstract_object.hpp:8
Contains xtd::expressions::operator_precedence enum class.
The xtd::expressions::expression_stream is the streamable class for expression objects.
Definition expression_stream.hpp:23
operator_precedence parent_precedence
The parent operator precedence. That contains one of xtd::expressions::operator_precedence values.
Definition expression_stream.hpp:27
const expression_t & expression
The expression to stream.
Definition expression_stream.hpp:25