xtd 1.0.0
Loading...
Searching...
No Matches
xtd::expressions::argument< index > Struct Template Reference
Inheritance diagram for xtd::expressions::argument< index >:
xtd::expressions::argument_expression xtd::expressions::expression

Definition

template<size_t index>
struct xtd::expressions::argument< index >

The xtd::expressions::arg object is arg for all expressions.

Namespace
xtd::expressions
Header
#include <xtd/expressions/arg>
Library
xtd.core
Remarks
Prefer the xtd::expressions::arg <N> or xtd::expressions::_, xtd::expressions::_1 ... xtd::expressions::_10 instead xtd::expressions::arg.
Examples
The following example shows how to use xtd::expressions::expression::arg.
#include <xtd/xtd>
auto main() -> int {
// auto arg1 = [](auto&& _1) {return _1;};
auto arg1_1 = expression::arg<1>;
println("arg1_1 = {}", arg1_1(10));
// For argument 1 to 10, a second method is possible because the _N are aliases on xtd::expressionq::expression::arg<N>.
auto arg1_2 = _1; // The _N are aliases on xtd::expressions::expression::arg<N>.
println("arg1_2 = {}", arg1_2(10));
// For argument 1, a third method is possible because the _ is an alias on xtd::expressionq::expression::arg<1>.
auto arg1_3 = _; // The _ is an alias on xtd::expressions::expression::arg<1>.
println("arg1_3 = {}", arg1_3(10));
// auto expr = [](auto&& arg1, auto&& arg2, auto&& arg3) {return arg1 + arg2 + arg3;};
println("expr1 = {}", expr1(10, 20, 30));
auto expr2 = _1 + _2 + _3; // The _N are aliases on xtd::expressions::expression::arg<N>.
println("expr2 = {}", expr2(10, 20, 30));
auto expr3 = _ + _2 + _3; // The _ is an alias on xtd::expressions::expression::arg<1>.
println("expr3 = {}", expr3(10, 20, 30));
}
// This code produces the following output :
//
// arg1_1 = 10
// arg1_2 = 10
// arg1_3 = 10
//
// expr1 = 60
// expr2 = 60
// expr3 = 60
constexpr auto _
The xtd::expressions::_ arg instance is used by expression that have only one argument.
Definition args.hpp:68
constexpr auto _2
The xtd::expressions::_2 arg instance is second argument used by expression.
Definition args.hpp:119
constexpr auto _3
The xtd::expressions::_3 arg instance is third argument used by expression.
Definition args.hpp:144
constexpr auto _1
The xtd::expressions::_1 arg instance is first argument used by expression.
Definition args.hpp:94
auto println(FILE *file) -> void
Writes the current line terminator to the file output stream using the specified format information.
Definition println.hpp:15
static const xtd::expressions::argument< index > arg
Gets the index argument used by expression.
Definition expression.hpp:95

Public Fields

static constexpr operator_precedence precedence
 The operator precedence. That contains one of xtd::expressions::operator_precedence values.

Public Operators

template<typename... args_t>
constexpr decltype(auto) operator() (args_t &&... args) const
 Gets the arg value.

Additional Inherited Members

Member Function Documentation

◆ operator()()

template<size_t index>
template<typename... args_t>
decltype(auto) xtd::expressions::argument< index >::operator() ( args_t &&... args) const
inlineconstexpr

Gets the arg value.

Returns
The arg value.

Member Data Documentation

◆ precedence

template<size_t index>
operator_precedence xtd::expressions::argument< index >::precedence
staticconstexpr

The operator precedence. That contains one of xtd::expressions::operator_precedence values.


The documentation for this struct was generated from the following file:
  • xtd.core/include/xtd/expressions/arg.hpp