mp_starts_with_sf.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // Copyright 2018 Glen Joseph Fernandes
  2. // (glenjofe@gmail.com)
  3. //
  4. // Distributed under the Boost Software License, Version 1.0.
  5. //
  6. // See accompanying file LICENSE_1_0.txt or copy at
  7. // http://www.boost.org/LICENSE_1_0.txt
  8. #include <boost/mp11/utility.hpp>
  9. #include <boost/mp11/algorithm.hpp>
  10. #include <boost/core/lightweight_test_trait.hpp>
  11. #include <type_traits>
  12. int main()
  13. {
  14. using boost::mp11::mp_valid;
  15. using boost::mp11::mp_starts_with;
  16. using boost::mp11::mp_list;
  17. BOOST_TEST_TRAIT_FALSE((mp_valid<mp_starts_with>));
  18. BOOST_TEST_TRAIT_FALSE((mp_valid<mp_starts_with,
  19. void>));
  20. BOOST_TEST_TRAIT_FALSE((mp_valid<mp_starts_with,
  21. mp_list<> >));
  22. BOOST_TEST_TRAIT_FALSE((mp_valid<mp_starts_with,
  23. mp_list<int> >));
  24. BOOST_TEST_TRAIT_FALSE((mp_valid<mp_starts_with,
  25. void, void>));
  26. BOOST_TEST_TRAIT_FALSE((mp_valid<mp_starts_with,
  27. mp_list<>, void>));
  28. BOOST_TEST_TRAIT_FALSE((mp_valid<mp_starts_with,
  29. mp_list<int>, void>));
  30. BOOST_TEST_TRAIT_FALSE((mp_valid<mp_starts_with,
  31. void, mp_list<> >));
  32. BOOST_TEST_TRAIT_FALSE((mp_valid<mp_starts_with,
  33. void, mp_list<int> >));
  34. BOOST_TEST_TRAIT_TRUE((mp_valid<mp_starts_with,
  35. mp_list<>, mp_list<> >));
  36. BOOST_TEST_TRAIT_TRUE((mp_valid<mp_starts_with,
  37. mp_list<>, mp_list<int> >));
  38. BOOST_TEST_TRAIT_TRUE((mp_valid<mp_starts_with,
  39. mp_list<int>, mp_list<> >));
  40. BOOST_TEST_TRAIT_TRUE((mp_valid<mp_starts_with,
  41. mp_list<int>, mp_list<char> >));
  42. return boost::report_errors();
  43. }