at.cpp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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/at.hpp>
  6. #include <boost/hana/equal.hpp>
  7. #include <boost/hana/integral_constant.hpp>
  8. #include <boost/hana/string.hpp>
  9. namespace hana = boost::hana;
  10. int main() {
  11. BOOST_HANA_CONSTANT_CHECK(hana::equal(
  12. BOOST_HANA_STRING("abcd")[hana::size_c<2>],
  13. hana::char_c<'c'>
  14. ));
  15. BOOST_HANA_CONSTANT_CHECK(hana::equal(
  16. hana::at(BOOST_HANA_STRING("a"), hana::size_c<0>),
  17. hana::char_c<'a'>
  18. ));
  19. BOOST_HANA_CONSTANT_CHECK(hana::equal(
  20. hana::at(BOOST_HANA_STRING("ab"), hana::size_c<0>),
  21. hana::char_c<'a'>
  22. ));
  23. BOOST_HANA_CONSTANT_CHECK(hana::equal(
  24. hana::at(BOOST_HANA_STRING("abc"), hana::size_c<0>),
  25. hana::char_c<'a'>
  26. ));
  27. BOOST_HANA_CONSTANT_CHECK(hana::equal(
  28. hana::at(BOOST_HANA_STRING("ab"), hana::size_c<1>),
  29. hana::char_c<'b'>
  30. ));
  31. BOOST_HANA_CONSTANT_CHECK(hana::equal(
  32. hana::at(BOOST_HANA_STRING("abc"), hana::size_c<1>),
  33. hana::char_c<'b'>
  34. ));
  35. BOOST_HANA_CONSTANT_CHECK(hana::equal(
  36. hana::at(BOOST_HANA_STRING("abcd"), hana::size_c<1>),
  37. hana::char_c<'b'>
  38. ));
  39. BOOST_HANA_CONSTANT_CHECK(hana::equal(
  40. hana::at(BOOST_HANA_STRING("abc"), hana::size_c<2>),
  41. hana::char_c<'c'>
  42. ));
  43. BOOST_HANA_CONSTANT_CHECK(hana::equal(
  44. hana::at(BOOST_HANA_STRING("abcd"), hana::size_c<2>),
  45. hana::char_c<'c'>
  46. ));
  47. }