From 2e99690387e198a44dcec7c5b2139d1b0fc962c3 Mon Sep 17 00:00:00 2001 From: Joel de Guzman Date: Thu, 26 Apr 2012 00:26:25 +0000 Subject: [PATCH] added missing file from last merge [SVN r78202] --- .../deque/detail/cpp11_deque_keyed_values.hpp | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 include/boost/fusion/container/deque/detail/cpp11_deque_keyed_values.hpp diff --git a/include/boost/fusion/container/deque/detail/cpp11_deque_keyed_values.hpp b/include/boost/fusion/container/deque/detail/cpp11_deque_keyed_values.hpp new file mode 100644 index 00000000..43ed5360 --- /dev/null +++ b/include/boost/fusion/container/deque/detail/cpp11_deque_keyed_values.hpp @@ -0,0 +1,56 @@ +/*============================================================================= + Copyright (c) 2005-2012 Joel de Guzman + Copyright (c) 2005-2006 Dan Marsden + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +==============================================================================*/ +#if !defined(BOOST_FUSION_DEQUE_DETAIL_CPP11_DEQUE_KEYED_VALUES_07042012_1901) +#define BOOST_FUSION_DEQUE_DETAIL_CPP11_DEQUE_KEYED_VALUES_07042012_1901 + +#include +#include +#include +#include + +namespace boost { namespace fusion { namespace detail +{ + template + struct keyed_element; + + template + struct deque_keyed_values_impl; + + template + struct deque_keyed_values_impl + { + typedef mpl::int_<(N::value + 1)> next_index; + typedef typename deque_keyed_values_impl::type tail; + typedef keyed_element type; + + static type call( + typename detail::call_param::type head + , typename detail::call_param::type... tail) + { + return type( + head + , deque_keyed_values_impl::call(tail...) + ); + } + }; + + struct nil_keyed_element; + + template + struct deque_keyed_values_impl + { + typedef nil_keyed_element type; + static type call() { return type(); } + }; + + template + struct deque_keyed_values + : deque_keyed_values_impl, Elements...> {}; +}}} + +#endif