tag_of.cpp 719 B

1234567891011121314151617181920
  1. // Copyright Louis Dionne 2013-2017
  2. // Distributed under the Boost Software License, Version 1.0.
  3. // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
  4. #include <boost/hana/core/tag_of.hpp>
  5. #include <type_traits>
  6. namespace hana = boost::hana;
  7. static_assert(std::is_same<hana::tag_of<int>::type, int>{}, "");
  8. static_assert(std::is_same<hana::tag_of<int&>::type, int>{}, "");
  9. static_assert(std::is_same<hana::tag_of<int const&>::type, int>{}, "");
  10. struct PersonTag;
  11. struct Person { using hana_tag = PersonTag; };
  12. static_assert(std::is_same<hana::tag_of<Person>::type, PersonTag>{}, "");
  13. static_assert(std::is_same<hana::tag_of<Person volatile&&>::type, PersonTag>{}, "");
  14. int main() { }