Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

49 строки
1.2 KiB

  1. #pragma once
  2. #define cppmp_define_modifier(name) \
  3. template<typename... T> \
  4. struct name \
  5. : public std::name<T...> \
  6. { }; \
  7. \
  8. template<typename... T> \
  9. using name ## _t = typename name<T...>::type
  10. namespace cppmp
  11. {
  12. template<class T>
  13. struct decay;
  14. template<typename T>
  15. using decay_t = typename decay<T>::type;
  16. cppmp_define_modifier(remove_cv);
  17. cppmp_define_modifier(remove_const);
  18. cppmp_define_modifier(remove_volatile);
  19. cppmp_define_modifier(add_cv);
  20. cppmp_define_modifier(add_const);
  21. cppmp_define_modifier(add_volatile);
  22. cppmp_define_modifier(remove_reference);
  23. cppmp_define_modifier(add_lvalue_reference);
  24. cppmp_define_modifier(add_rvalue_reference);
  25. cppmp_define_modifier(remove_pointer);
  26. cppmp_define_modifier(add_pointer);
  27. cppmp_define_modifier(make_signed);
  28. cppmp_define_modifier(make_unsigned);
  29. cppmp_define_modifier(remove_extent);
  30. cppmp_define_modifier(remove_all_extents);
  31. cppmp_define_modifier(common_type);
  32. cppmp_define_modifier(underlying_type);
  33. cppmp_define_modifier(result_of);
  34. #if __cplusplus >= 201703L
  35. cppmp_define_modifier(invoke_result);
  36. #endif
  37. }
  38. #undef cppmp_define_modifier
  39. #include "modifier.inl"