xtd 0.2.0
Loading...
Searching...
No Matches
constant.hpp
Go to the documentation of this file.
1
4#pragma once
6#include <ostream>
7
9namespace xtd {
11 namespace expressions {
54 template <auto constant_value>
55 struct constant : value_expression {
57
62
64
67 constexpr constant() = default;
69
70
72
76 constexpr auto operator()(auto&&...) const {
77 return value_;
78 }
79
80
82 friend auto operator <<(std::ostream& os, constant c) -> std::ostream& {return os << c.value_;}
84
85 private:
86 static constexpr auto value_ = constant_value;
87 };
88
90 template <auto constant_value>
93 }
94}
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
@ constant
Represnets the constant operator precedence (constant<42>).
Definition operator_precedence.hpp:28
@ c
The C key.
Definition console_key.hpp:92
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
The xtd::expressions::constant is the constant wrapper.
Definition constant.hpp:55
static constexpr operator_precedence precedence
The operator precedence. That contains one of xtd::expressions::operator_precedence values.
Definition constant.hpp:60
constexpr auto operator()(auto &&...) const
Gets the constant value.
Definition constant.hpp:76
constexpr constant()=default
Initialize a new xtd::expressions::constant object.
static constexpr auto constant()
Gets the constant value.
Contains xtd::expressions::value_expression struct.