Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 

47 řádky
936 B

  1. #pragma once
  2. #include "generic_predicate.h"
  3. namespace cppmp
  4. {
  5. /* tags */
  6. struct tag_setter { };
  7. struct tag_setter_member_var { };
  8. struct tag_setter_member_func { };
  9. struct tag_setter_lambda { };
  10. namespace __impl
  11. {
  12. /* setter_builder */
  13. template<typename X, typename = void>
  14. struct setter_builder;
  15. }
  16. /**
  17. * @brief Evaluates to true_t if the passed type is an setter, to false_t otherwise.
  18. */
  19. template<typename T>
  20. struct is_setter;
  21. #ifdef cppmp_supports_variable_templates
  22. /**
  23. * @brief Is true if the passed type is an setter, false otherwise.
  24. */
  25. template<typename T>
  26. constexpr decltype(auto) is_setter_v = is_setter<T>::value;
  27. #endif
  28. /**
  29. * @brief Predicate to create new setter objects.
  30. */
  31. constexpr decltype(auto) make_setter = generic_predicate<__impl::setter_builder> { };
  32. }
  33. #include "setter.inl"