MPL11
 All Classes Namespaces Files Typedefs Macros Groups Pages
variadic_unrolled.hpp
Go to the documentation of this file.
1 
12 // GENERATED HEADER: DO NOT EDIT.
15 
16 #ifndef BOOST_MPL11_DETAIL_LEFT_FOLDS_VARIADIC_UNROLLED_HPP
17 #define BOOST_MPL11_DETAIL_LEFT_FOLDS_VARIADIC_UNROLLED_HPP
18 
19 namespace boost { namespace mpl11 { namespace detail { namespace left_folds {
20 
21 
29 template <template <typename ...> class f, typename state, typename ...xs>
31 
32 template <
33  template <typename ...> class f,
34  typename state
35  , typename x0, typename x1, typename x2, typename x3, typename x4, typename x5,
36  typename ...xs>
37 struct variadic_unrolled<f, state , x0, x1, x2, x3, x4, x5, xs...>
39  f,
40  f<f<f<f<f<f<state, x0>, x1>, x2>, x3>, x4>, x5>,
41  xs...
42  >
43 { };
44 
45 
46  template <
47  template <typename ...> class f,
48  typename state
49 
50  >
51  struct variadic_unrolled<f, state >
52  : state
53  { };
54 
55  template <
56  template <typename ...> class f,
57  typename state
58  , typename x0
59  >
60  struct variadic_unrolled<f, state , x0 >
61  : f<state, x0>
62  { };
63 
64  template <
65  template <typename ...> class f,
66  typename state
67  , typename x0, typename x1
68  >
69  struct variadic_unrolled<f, state , x0, x1 >
70  : f<f<state, x0>, x1>
71  { };
72 
73  template <
74  template <typename ...> class f,
75  typename state
76  , typename x0, typename x1, typename x2
77  >
78  struct variadic_unrolled<f, state , x0, x1, x2 >
79  : f<f<f<state, x0>, x1>, x2>
80  { };
81 
82  template <
83  template <typename ...> class f,
84  typename state
85  , typename x0, typename x1, typename x2, typename x3
86  >
87  struct variadic_unrolled<f, state , x0, x1, x2, x3 >
88  : f<f<f<f<state, x0>, x1>, x2>, x3>
89  { };
90 
91  template <
92  template <typename ...> class f,
93  typename state
94  , typename x0, typename x1, typename x2, typename x3, typename x4
95  >
96  struct variadic_unrolled<f, state , x0, x1, x2, x3, x4 >
97  : f<f<f<f<f<state, x0>, x1>, x2>, x3>, x4>
98  { };
99 
100 }}}} // end namespace boost::mpl11::detail::left_folds
101 
102 #endif // !BOOST_MPL11_DETAIL_LEFT_FOLDS_VARIADIC_UNROLLED_HPP
Left fold over a parameter pack with loop unrolling.
Definition: variadic_unrolled.hpp:30