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