1 /*=============================================================================
2 Copyright (c) 2001-2011 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)
7 This is an auto-generated file. Do not edit!
8 ==============================================================================*/
9 namespace boost { namespace fusion { namespace detail
11 template<typename Key, typename Value, typename Rest>
13 struct nil_keyed_element;
14 template<typename N, typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_>
15 struct deque_keyed_values_impl;
17 struct deque_keyed_values_impl<N, void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
19 typedef nil_keyed_element type;
25 template<typename N, typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
26 struct deque_keyed_values_impl
28 typedef mpl::int_<mpl::plus<N, mpl::int_<1> >::value> next_index;
29 typedef typename deque_keyed_values_impl<
31 T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9>::type tail;
32 typedef keyed_element<N, T0, tail> type;
33 static type call(typename add_reference<typename add_const<T0 >::type>::type t0)
36 deque_keyed_values_impl<
40 static type call(typename add_reference<typename add_const<T0 >::type>::type t0 , typename add_reference<typename add_const<T1 >::type>::type t1)
43 deque_keyed_values_impl<
48 static type call(typename add_reference<typename add_const<T0 >::type>::type t0 , typename add_reference<typename add_const<T1 >::type>::type t1 , typename add_reference<typename add_const<T2 >::type>::type t2)
51 deque_keyed_values_impl<
56 static type call(typename add_reference<typename add_const<T0 >::type>::type t0 , typename add_reference<typename add_const<T1 >::type>::type t1 , typename add_reference<typename add_const<T2 >::type>::type t2 , typename add_reference<typename add_const<T3 >::type>::type t3)
59 deque_keyed_values_impl<
62 >::call(t1 , t2 , t3));
64 static type call(typename add_reference<typename add_const<T0 >::type>::type t0 , typename add_reference<typename add_const<T1 >::type>::type t1 , typename add_reference<typename add_const<T2 >::type>::type t2 , typename add_reference<typename add_const<T3 >::type>::type t3 , typename add_reference<typename add_const<T4 >::type>::type t4)
67 deque_keyed_values_impl<
70 >::call(t1 , t2 , t3 , t4));
72 static type call(typename add_reference<typename add_const<T0 >::type>::type t0 , typename add_reference<typename add_const<T1 >::type>::type t1 , typename add_reference<typename add_const<T2 >::type>::type t2 , typename add_reference<typename add_const<T3 >::type>::type t3 , typename add_reference<typename add_const<T4 >::type>::type t4 , typename add_reference<typename add_const<T5 >::type>::type t5)
75 deque_keyed_values_impl<
77 , T1 , T2 , T3 , T4 , T5
78 >::call(t1 , t2 , t3 , t4 , t5));
80 static type call(typename add_reference<typename add_const<T0 >::type>::type t0 , typename add_reference<typename add_const<T1 >::type>::type t1 , typename add_reference<typename add_const<T2 >::type>::type t2 , typename add_reference<typename add_const<T3 >::type>::type t3 , typename add_reference<typename add_const<T4 >::type>::type t4 , typename add_reference<typename add_const<T5 >::type>::type t5 , typename add_reference<typename add_const<T6 >::type>::type t6)
83 deque_keyed_values_impl<
85 , T1 , T2 , T3 , T4 , T5 , T6
86 >::call(t1 , t2 , t3 , t4 , t5 , t6));
88 static type call(typename add_reference<typename add_const<T0 >::type>::type t0 , typename add_reference<typename add_const<T1 >::type>::type t1 , typename add_reference<typename add_const<T2 >::type>::type t2 , typename add_reference<typename add_const<T3 >::type>::type t3 , typename add_reference<typename add_const<T4 >::type>::type t4 , typename add_reference<typename add_const<T5 >::type>::type t5 , typename add_reference<typename add_const<T6 >::type>::type t6 , typename add_reference<typename add_const<T7 >::type>::type t7)
91 deque_keyed_values_impl<
93 , T1 , T2 , T3 , T4 , T5 , T6 , T7
94 >::call(t1 , t2 , t3 , t4 , t5 , t6 , t7));
96 static type call(typename add_reference<typename add_const<T0 >::type>::type t0 , typename add_reference<typename add_const<T1 >::type>::type t1 , typename add_reference<typename add_const<T2 >::type>::type t2 , typename add_reference<typename add_const<T3 >::type>::type t3 , typename add_reference<typename add_const<T4 >::type>::type t4 , typename add_reference<typename add_const<T5 >::type>::type t5 , typename add_reference<typename add_const<T6 >::type>::type t6 , typename add_reference<typename add_const<T7 >::type>::type t7 , typename add_reference<typename add_const<T8 >::type>::type t8)
99 deque_keyed_values_impl<
101 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8
102 >::call(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8));
104 static type call(typename add_reference<typename add_const<T0 >::type>::type t0 , typename add_reference<typename add_const<T1 >::type>::type t1 , typename add_reference<typename add_const<T2 >::type>::type t2 , typename add_reference<typename add_const<T3 >::type>::type t3 , typename add_reference<typename add_const<T4 >::type>::type t4 , typename add_reference<typename add_const<T5 >::type>::type t5 , typename add_reference<typename add_const<T6 >::type>::type t6 , typename add_reference<typename add_const<T7 >::type>::type t7 , typename add_reference<typename add_const<T8 >::type>::type t8 , typename add_reference<typename add_const<T9 >::type>::type t9)
107 deque_keyed_values_impl<
109 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9
110 >::call(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9));
113 template<typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_>
114 struct deque_keyed_values
115 : deque_keyed_values_impl<mpl::int_<0>, T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9>