has_duplicates.cpp 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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/detail/has_duplicates.hpp>
  5. #include <boost/hana/integral_constant.hpp>
  6. namespace hana = boost::hana;
  7. static_assert(!hana::detail::has_duplicates<>::value, "");
  8. static_assert(!hana::detail::has_duplicates<
  9. hana::int_<0>
  10. >::value, "");
  11. static_assert(!hana::detail::has_duplicates<
  12. hana::int_<0>, hana::int_<1>
  13. >::value, "");
  14. static_assert(!hana::detail::has_duplicates<
  15. hana::int_<0>, hana::int_<1>, hana::int_<2>
  16. >::value, "");
  17. static_assert(hana::detail::has_duplicates<
  18. hana::int_<0>, hana::int_<0>, hana::int_<2>
  19. >::value, "");
  20. static_assert(hana::detail::has_duplicates<
  21. hana::int_<0>, hana::int_<1>, hana::int_<0>
  22. >::value, "");
  23. static_assert(hana::detail::has_duplicates<
  24. hana::int_<0>, hana::int_<1>, hana::int_<2>, hana::int_<1>
  25. >::value, "");
  26. static_assert(hana::detail::has_duplicates<
  27. hana::int_<0>, hana::int_<1>, hana::int_<2>, hana::int_<2>
  28. >::value, "");
  29. static_assert(hana::detail::has_duplicates<
  30. hana::int_<0>, hana::int_<1>, hana::int_<2>, hana::int_<1>, hana::int_<1>
  31. >::value, "");
  32. static_assert(hana::detail::has_duplicates<
  33. hana::int_<0>, hana::int_<1>, hana::int_<2>, hana::int_<1>, hana::int_<2>
  34. >::value, "");
  35. // Make sure it uses deep equality
  36. static_assert(hana::detail::has_duplicates<
  37. hana::int_<0>, hana::long_<0>, hana::int_<2>, hana::int_<3>
  38. >::value, "");
  39. static_assert(hana::detail::has_duplicates<
  40. hana::int_<0>, hana::int_<1>, hana::int_<2>, hana::long_<1>
  41. >::value, "");
  42. int main() { }