Functional.h 767 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #pragma once
  2. #include "utils/NonCopyable.h"
  3. namespace il2cpp
  4. {
  5. namespace utils
  6. {
  7. namespace functional
  8. {
  9. struct TrueFilter
  10. {
  11. template<typename T>
  12. inline bool operator()(const T& item) const
  13. {
  14. return true;
  15. }
  16. };
  17. template<typename ItemType, typename Comparer>
  18. struct Filter : NonCopyable
  19. {
  20. private:
  21. ItemType m_Item;
  22. Comparer m_Comparer;
  23. public:
  24. Filter(ItemType item, Comparer comparer = Comparer()) :
  25. m_Item(item), m_Comparer(comparer)
  26. {
  27. }
  28. template<typename T>
  29. inline bool operator()(const T& item) const
  30. {
  31. return m_Comparer(m_Item, item);
  32. }
  33. };
  34. } // functional
  35. } // utils
  36. } // il2cpp