31 #ifndef ETL_FUNCTIONAL_INCLUDED
32 #define ETL_FUNCTIONAL_INCLUDED
66 ETL_CONSTEXPR20 T& get()
const ETL_NOEXCEPT
71 ETL_CONSTEXPR20
operator T&()
const ETL_NOEXCEPT
90 reference_wrapper<T> ref(reference_wrapper<T> t)
92 return reference_wrapper<T>(t.get());
97 reference_wrapper<const T> cref(
const T& t)
99 return reference_wrapper<const T>(t);
103 template <
typename T>
104 reference_wrapper<const T> cref(reference_wrapper<T> t)
106 return reference_wrapper<const T>(t.get());
110 template <
typename T =
void>
113 typedef T value_type;
115 ETL_CONSTEXPR
bool operator()(
const T &lhs,
const T &rhs)
const
122 template <
typename T =
void>
125 typedef T value_type;
127 ETL_CONSTEXPR
bool operator()(
const T &lhs,
const T &rhs)
const
134 template <
typename T =
void>
137 typedef T value_type;
139 ETL_CONSTEXPR
bool operator()(
const T &lhs,
const T &rhs)
const
146 template <
typename T =
void>
149 typedef T value_type;
151 ETL_CONSTEXPR
bool operator()(
const T &lhs,
const T &rhs)
const
159 template <
typename TArgumentType,
typename TResultType>
162 typedef TArgumentType argument_type;
163 typedef TResultType result_type;
168 template <
typename TFirstArgumentType,
typename TSecondArgumentType,
typename TResultType>
171 typedef TFirstArgumentType first_argument_type;
172 typedef TSecondArgumentType second_argument_type;
173 typedef TResultType result_type;
178 template <
typename TFunction>
184 typename TFunction::first_argument_type value;
188 binder1st(
const TFunction& f,
const typename TFunction::first_argument_type& v)
189 : operation(f), value(v)
193 typename TFunction::result_type operator()(
typename TFunction::second_argument_type& x)
const
195 return operation(value, x);
198 typename TFunction::result_type operator()(
const typename TFunction::second_argument_type& x)
const
200 return operation(value, x);
204 template <
typename F,
typename T>
212 template <
typename TFunction >
217 typename TFunction::second_argument_type value;
219 binder2nd(
const TFunction& f,
const typename TFunction::second_argument_type& v)
220 : operation(f), value(v)
224 typename TFunction::result_type operator()(
typename TFunction::first_argument_type& x)
const
226 return operation(x, value);
229 typename TFunction::result_type operator()(
const typename TFunction::first_argument_type& x)
const
231 return operation(x, value);
235 template <
typename F,
typename T>
Definition: functional.h:180
Definition: functional.h:214
Definition: functional.h:50
Definition: absolute.h:37
Definition: functional.h:170
Definition: functional.h:136
Definition: functional.h:124
Definition: functional.h:112
Definition: functional.h:148
Definition: functional.h:161