You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

18 lines
589 B

  1. #include <cstdint>
  2. #include <cpputils/mp/core/const.h>
  3. #include <cpputils/mp/misc/is_a.h>
  4. namespace test_mp_util_is_a
  5. {
  6. struct tagged_int { using tag = int; };
  7. struct tagged_float { using tag = float; };
  8. struct tagged_not { };
  9. }
  10. using namespace ::utl::mp;
  11. using namespace ::test_mp_util_is_a;
  12. static_assert( is_a<int, tagged_int>, "is_a");
  13. static_assert(!is_a<int, tagged_float>, "is_a");
  14. static_assert( is_a<tag_integral_constant<int>>(integral_constant<int, 1> { }), "is_a");
  15. static_assert(!is_a<tag_integral_constant<int>>(integral_constant<uint8_t, 1> { }), "is_a");