xtd
1.0.0
Toggle main menu visibility
Loading...
Searching...
No Matches
xtd.core
include
xtd
expressions
expression_stream.hpp
Go to the documentation of this file.
1
4
#pragma once
5
#include "
operator_precedence.hpp
"
6
#include <ostream>
7
9
namespace
xtd
{
11
namespace
expressions
{
22
template
<
typename
expression_t>
23
struct
expression_stream
{
25
const
expression_t&
expression
;
27
operator_precedence
parent_precedence
;
28
};
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
xtd::expressions::operator_precedence
operator_precedence
Specifies the operator precedence.
Definition
operator_precedence.hpp:22
xtd::expressions::operator<<
constexpr auto operator<<(left_t left, right_t right)
Subtract the specified left and right operands.
Definition
left_shift_expression.hpp:127
xtd::expressions
The xtd::expressions namespace provides a lightweight, composable expression template framework for b...
Definition
add_expression.hpp:14
xtd
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition
abstract_object.hpp:8
operator_precedence.hpp
Contains xtd::expressions::operator_precedence enum class.
xtd::expressions::expression_stream
The xtd::expressions::expression_stream is the streamable class for expression objects.
Definition
expression_stream.hpp:23
xtd::expressions::expression_stream::parent_precedence
operator_precedence parent_precedence
The parent operator precedence. That contains one of xtd::expressions::operator_precedence values.
Definition
expression_stream.hpp:27
xtd::expressions::expression_stream::expression
const expression_t & expression
The expression to stream.
Definition
expression_stream.hpp:25
Generated on
for xtd by
Gammasoft
. All rights reserved.