1 | #ifndef BOOST_MP11_DETAIL_MP_IS_LIST_HPP_INCLUDED |
2 | #define BOOST_MP11_DETAIL_MP_IS_LIST_HPP_INCLUDED |
3 | |
4 | // Copyright 2015-2019 Peter Dimov. |
5 | // |
6 | // Distributed under the Boost Software License, Version 1.0. |
7 | // |
8 | // See accompanying file LICENSE_1_0.txt or copy at |
9 | // http://www.boost.org/LICENSE_1_0.txt |
10 | |
11 | #include <boost/mp11/integral.hpp> |
12 | |
13 | namespace boost |
14 | { |
15 | namespace mp11 |
16 | { |
17 | |
18 | // mp_is_list<L> |
19 | namespace detail |
20 | { |
21 | |
22 | template<class L> struct mp_is_list_impl |
23 | { |
24 | using type = mp_false; |
25 | }; |
26 | |
27 | template<template<class...> class L, class... T> struct mp_is_list_impl<L<T...>> |
28 | { |
29 | using type = mp_true; |
30 | }; |
31 | |
32 | } // namespace detail |
33 | |
34 | template<class L> using mp_is_list = typename detail::mp_is_list_impl<L>::type; |
35 | |
36 | } // namespace mp11 |
37 | } // namespace boost |
38 | |
39 | #endif // #ifndef BOOST_MP11_DETAIL_MP_IS_LIST_HPP_INCLUDED |
40 | |