range_c.cpp 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  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/assert.hpp>
  5. #include <boost/hana/core/make.hpp>
  6. #include <boost/hana/equal.hpp>
  7. #include <boost/hana/integral_constant.hpp>
  8. #include <boost/hana/range.hpp>
  9. namespace hana = boost::hana;
  10. int main() {
  11. using T = int;
  12. BOOST_HANA_CONSTANT_CHECK(hana::equal(
  13. hana::range_c<T, 0, 0>,
  14. hana::make_range(hana::integral_c<T, 0>, hana::integral_c<T, 0>)
  15. ));
  16. BOOST_HANA_CONSTANT_CHECK(hana::equal(
  17. hana::range_c<T, 0, 1>,
  18. hana::make_range(hana::integral_c<T, 0>, hana::integral_c<T, 1>)
  19. ));
  20. BOOST_HANA_CONSTANT_CHECK(hana::equal(
  21. hana::range_c<T, 0, 2>,
  22. hana::make_range(hana::integral_c<T, 0>, hana::integral_c<T, 2>)
  23. ));
  24. BOOST_HANA_CONSTANT_CHECK(hana::equal(
  25. hana::range_c<T, 1, 1>,
  26. hana::make_range(hana::integral_c<T, 1>, hana::integral_c<T, 1>)
  27. ));
  28. BOOST_HANA_CONSTANT_CHECK(hana::equal(
  29. hana::range_c<T, 1, 2>,
  30. hana::make_range(hana::integral_c<T, 1>, hana::integral_c<T, 2>)
  31. ));
  32. BOOST_HANA_CONSTANT_CHECK(hana::equal(
  33. hana::range_c<T, 1, 3>,
  34. hana::make_range(hana::integral_c<T, 1>, hana::integral_c<T, 3>)
  35. ));
  36. }