74 template <
typename T1,
typename T2>
75 using pair = std::pair<T1, T2>;
80 template <
typename T1,
typename T2>
84 return std::make_pair(
t1,
t2);
91 template<typename T1, typename T2>
92 constexpr pair<T1, T2>
93 make_pair(T1 &&t1, T2 &&t2)
94 { return std::make_pair(std::move(t1), std::move(t2)); }
102 template <
typename T>
108 template <
typename T>
118 template <
typename T>
122 return std::make_optional(
t);
130 constexpr optional<T>
132 { return std::make_optional(std::move(t)); }
consumer< ValueType > make_consumer(OutputIt &&iter)
Wrap an iterator into a consumer function.
Definition functional.h:71
Core types.
Definition adiar.h:40
std::pair< T1, T2 > pair
A pair of values.
Definition types.h:75
replace_type
Possible guarantees of a variable permutation/remapping m of type int -> int.
Definition types.h:32
constexpr pair< T1, T2 > make_pair(const T1 &t1, const T2 &t2)
Create an adiar::pair, deducing the target type based on the types of the arguments.
Definition types.h:82
std::optional< T > optional
An optional value, i.e. a possibly existent value.
Definition types.h:103
constexpr optional< T > make_optional()
Create an empty adiar::optional, i.e. None.
Definition types.h:110
assignment
Possible values to assign a variable.
Definition types.h:13