6 #ifndef SWIFT_MISC_PREDICATES_H
7 #define SWIFT_MISC_PREDICATES_H
16 class CPropertyIndexVariantMap;
25 template <
class... Ts>
28 return [vs...](
const auto &object) {
30 tupleForEachPair(std::make_tuple(vs...), [&](
auto member,
const auto &value) {
31 equal = equal && std::invoke(member, object) == value;
42 template <
class... Ts>
45 return [vs...](
const auto &a,
const auto &b) {
46 return std::forward_as_tuple(std::invoke(vs, a)...) < std::forward_as_tuple(std::invoke(vs, b)...);
56 return [memberFunc](
const auto &object) {
return std::invoke(memberFunc,
object); };
66 return [memberFunc](
const auto &object) {
return std::invoke(memberFunc,
object).isValid(); };
74 template <
class T,
class C>
77 return [memberFunc, &container](
const auto &object) {
78 return container.contains(std::invoke(memberFunc,
object));
88 return [value = std::forward<T>(value)](
const T &object) {
return object == value; };
95 template <
class... Ts>
99 [vs...](
const auto &a,
const auto &b) {
return ((std::invoke(vs, a) == std::invoke(vs, b)) && ...); };
auto Equals(T &&value)
Returns a predicate that returns true if its argument compares equal with another,...
auto MemberTransform(T memberFunc)
Returns a function object that returns the value returned by one of it's argument member functions.
auto EqualsByMembers(Ts... vs)
Returns a predicate that returns true if its arguments compare equal to each other,...
auto MemberValid(T memberFunc)
Returns a predicate that returns true if the isValid() method of the value returned from one of its m...
auto MemberIsAnyOf(T memberFunc, const C &container)
Returns a predicate that returns true if the value returned by its argument's member function can be ...
auto MemberEqual(Ts... vs)
Predicate which tests whether some member functions return some values.
auto MemberLess(Ts... vs)
Predicate which compares the return values of some member functions of two objects.
Free functions in swift::misc.
void tupleForEachPair(T &&tuple, F &&visitor)
Invoke a visitor function on each pair of elements of a tuple in order.