xtd
1.0.0
Toggle main menu visibility
Loading...
Searching...
No Matches
xtd.core
include
xtd
expressions
placeholder.hpp
Go to the documentation of this file.
1
4
#pragma once
5
#include "
operator_precedence.hpp
"
6
#include "
placeholder_expression.hpp
"
7
#include <concepts>
8
#include <ostream>
9
#include <tuple>
10
#include <type_traits>
11
13
namespace
xtd
{
15
namespace
expressions
{
57
template
<
size_t
index>
58
struct
placeholder : placeholder_expression {
60
63
static
constexpr
operator_precedence
precedence
=
operator_precedence::placeholder
;
65
67
69
placeholder
() =
default
;
71
73
77
template
<
typename
... args_t>
78
constexpr
decltype
(
auto
)
operator
()(args_t&&...
args
)
const
{
79
return
std::get<index - 1>(std::forward_as_tuple(std::forward<args_t>(
args
)...));
80
}
81
82
};
83
85
template
<
size_t
index>
86
constexpr
auto
expression::placeholder
() {
return
xtd::expressions::placeholder<index>
{};}
87
88
template
<
size_t
index>
89
inline
auto
operator <<
(std::ostream& os,
const
placeholder<index>
&) -> std::ostream& {
return
os <<
"_"
<< index;}
91
}
92
}
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::args
constexpr auto args()
Generates a set of positional placeholders that can be decomposed using structured bindings to build ...
Definition
args.hpp:43
xtd::expressions::operator_precedence::placeholder
@ placeholder
Represnets the placeholder operator precedence (_1).
Definition
operator_precedence.hpp:26
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.
placeholder_expression.hpp
Contains xtd::expressions::placeholder_expression struct.
xtd::expressions::expression::placeholder
static constexpr auto placeholder()
Gets the index placeholder used by expression.
xtd::expressions::placeholder
The xtd::expressions::placeholder object is placeholder for all expressions.
Definition
placeholder.hpp:58
xtd::expressions::placeholder::precedence
static constexpr operator_precedence precedence
The operator precedence. That contains one of xtd::expressions::operator_precedence values.
Definition
placeholder.hpp:63
Generated on
for xtd by
Gammasoft
. All rights reserved.