mp_is_value_list.hpp 874 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #ifndef BOOST_MP11_DETAIL_MP_IS_VALUE_LIST_HPP_INCLUDED
  2. #define BOOST_MP11_DETAIL_MP_IS_VALUE_LIST_HPP_INCLUDED
  3. // Copyright 2023 Peter Dimov
  4. // Distributed under the Boost Software License, Version 1.0.
  5. // https://www.boost.org/LICENSE_1_0.txt
  6. #include <boost/mp11/integral.hpp>
  7. #include <boost/mp11/detail/config.hpp>
  8. namespace boost
  9. {
  10. namespace mp11
  11. {
  12. // mp_is_value_list<L>
  13. namespace detail
  14. {
  15. template<class L> struct mp_is_value_list_impl
  16. {
  17. using type = mp_false;
  18. };
  19. #if defined(BOOST_MP11_HAS_TEMPLATE_AUTO)
  20. template<template<auto...> class L, auto... A> struct mp_is_value_list_impl<L<A...>>
  21. {
  22. using type = mp_true;
  23. };
  24. #endif
  25. } // namespace detail
  26. template<class L> using mp_is_value_list = typename detail::mp_is_value_list_impl<L>::type;
  27. } // namespace mp11
  28. } // namespace boost
  29. #endif // #ifndef BOOST_MP11_DETAIL_MP_IS_VALUE_LIST_HPP_INCLUDED