8#ifndef ADOBE_FUNCTIONAL_OPERATOR_HPP
9#define ADOBE_FUNCTIONAL_OPERATOR_HPP
30 return std::equal_to<T>()(x, y);
39 return std::not_equal_to<T>()(x, y);
48 return std::greater<T>()(x, y);
57 return typename std::less<T>()(x, y);
60 template <
typename T,
typename U>
65 bool operator()(
const std::type_info& x,
const std::type_info& y)
const {
66 return x.before(y) != 0;
75 return std::greater_equal<T>()(x, y);
84 return std::less_equal<T>()(x, y);
93 return std::logical_and<T>()(x, y);
100 template <
typename T>
102 return std::logical_or<T>()(x, y);
109 template <
typename T>
111 return std::logical_not<T>()(x);
120 template <
class T,
class U>
122 r = std::forward<T>(x);
137template <
typename T =
void>
148 return std::forward<T>(x);
163 template <
typename T>
178 template <
typename T>
197 template <
class A1,
class A2>
202 template <
class A1,
class A2,
class A3>
203 T
operator()(
const A1& a1,
const A2& a2,
const A3& a3)
const {
204 return T(a1, a2, a3);
207 template <
class A1,
class A2,
class A3,
class A4>
208 T
operator()(
const A1& a1,
const A2& a2,
const A3& a3,
const A4& a4)
const {
209 return T(a1, a2, a3, a4);
212 template <
class A1,
class A2,
class A3,
class A4,
class A5>
213 T
operator()(
const A1& a1,
const A2& a2,
const A3& a3,
const A4& a4,
const A5& a5)
const {
214 return T(a1, a2, a3, a4, a5);
224 template <
typename P>
254template <
typename T1,
typename T2>
281 template <
typename T>
void operator()(T &&x, U &r)
T operator()(const T &x, const T &y) const
T operator()(const T &x, const T &y) const
T operator()(const T &x, const T &y) const
T operator()(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4, const A5 &a5) const
T operator()(const A1 &a1, const A2 &a2) const
T operator()(const A1 &a1, const A2 &a2, const A3 &a3) const
T operator()(const A1 &a1) const
T operator()(const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4) const
operator-- wrapped in a function object
A function object for type T that invokes delete[] on an array of T.
void operator()(const T *x) const
A function object for type T that invokes delete on a T*.
void operator()(const T *x) const
bool operator()(const T &x, const T &y) const
bool operator()(const T &x, const T &y) const
bool operator()(const T &x, const T &y) const
auto operator()(T &&x) const noexcept
T & operator()(T &x) const
operator++ wrapped in a function object
T & operator()(P x) const
bool operator()(const T &x, const T &y) const
bool operator()(const T &x, const U &y) const
bool operator()(const std::type_info &x, const std::type_info &y) const
bool operator()(const T &x, const T &y) const
bool operator()(const T &x, const T &y) const
bool operator()(const T &x) const
bool operator()(const T &x, const T &y) const
bool operator()(const T &x, const T &y) const
plus function object whose arguments may be of different type.
T1 operator()(T1 f1, T2 f2) const
T * operator()(T &x) const
typeid(x) wrapped in a function object
std::type_info result_type
const result_type & operator()(T) const