12 #ifndef BOOST_MPL11_DETAIL_LEFT_FOLDS_VARIADIC_ARROW_HPP
13 #define BOOST_MPL11_DETAIL_LEFT_FOLDS_VARIADIC_ARROW_HPP
15 namespace boost {
namespace mpl11 {
namespace detail {
namespace left_folds {
16 template <
template <
typename ...>
class f,
typename state,
typename ...xs>
19 arrow_impl* operator->();
22 template <
template <
typename ...>
class f,
23 typename state,
typename x,
typename ...xs>
24 struct arrow_impl<f, state, x, xs...> {
25 arrow_impl<f, f<state, x>, xs...> operator->();
35 template <
template <
typename ...>
class f,
typename state,
typename ...xs>
36 using variadic_arrow = decltype(arrow_impl<f, state, xs...>{}->result);
39 #endif // !BOOST_MPL11_DETAIL_LEFT_FOLDS_VARIADIC_ARROW_HPP