Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.

33 righe
668 B

  1. #pragma once
  2. #include <cpputils/mp/core/const.h>
  3. namespace utl {
  4. namespace mp {
  5. namespace __impl /* forward declaration */
  6. {
  7. template<typename T, typename = void>
  8. struct is_default_impl;
  9. }
  10. template<typename T>
  11. using is_default = __impl::is_default_impl<T>;
  12. namespace __impl /* implementation */
  13. {
  14. struct default_ { };
  15. template<typename T, typename>
  16. struct is_default_impl :
  17. public c_false
  18. { };
  19. template<typename T>
  20. struct is_default_impl<T, decltype((void)static_cast<default_>(std::declval<T>()))> :
  21. public c_true
  22. { };
  23. }
  24. }
  25. }