1 /*=============================================================================
2 Copyright (c) 2005 Joel de Guzman
4 Distributed under the Boost Software License, Version 1.0. (See accompanying
5 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 ==============================================================================*/
7 #if !defined(FUSION_LIST_TO_CONS_07172005_1041)
8 #define FUSION_LIST_TO_CONS_07172005_1041
10 #include <boost/fusion/container/list/cons.hpp>
11 #include <boost/fusion/container/list/limits.hpp>
12 #include <boost/preprocessor/repetition/enum.hpp>
13 #include <boost/preprocessor/repetition/enum_params.hpp>
14 #include <boost/preprocessor/repetition/enum_shifted_params.hpp>
15 #include <boost/preprocessor/arithmetic/dec.hpp>
17 #define FUSION_VOID(z, n, _) void_
19 namespace boost
{ namespace fusion
25 namespace boost
{ namespace fusion
{ namespace detail
27 template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_LIST_SIZE
, typename T
)>
32 BOOST_PP_ENUM_SHIFTED_PARAMS(FUSION_MAX_LIST_SIZE
, T
), void_
>
34 typedef typename
tail_list_to_cons::type tail_type
;
36 typedef cons
<head_type
, tail_type
> type
;
38 #include <boost/fusion/container/list/detail/list_to_cons_call.hpp>
42 struct list_to_cons
<BOOST_PP_ENUM(FUSION_MAX_LIST_SIZE
, FUSION_VOID
, _
)>