summaryrefslogtreecommitdiff
path: root/boost/fusion/container/deque/detail/value_at_impl.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/fusion/container/deque/detail/value_at_impl.hpp')
-rw-r--r--boost/fusion/container/deque/detail/value_at_impl.hpp22
1 files changed, 12 insertions, 10 deletions
diff --git a/boost/fusion/container/deque/detail/value_at_impl.hpp b/boost/fusion/container/deque/detail/value_at_impl.hpp
index 64dbe5e16f..cba31a3e0a 100644
--- a/boost/fusion/container/deque/detail/value_at_impl.hpp
+++ b/boost/fusion/container/deque/detail/value_at_impl.hpp
@@ -1,8 +1,8 @@
/*=============================================================================
- Copyright (c) 2005-2011 Joel de Guzman
+ Copyright (c) 2005-2012 Joel de Guzman
Copyright (c) 2005-2006 Dan Marsden
- Distributed under the Boost Software License, Version 1.0. (See accompanying
+ 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_VALUE_AT_IMPL_08122006_0756)
@@ -13,15 +13,15 @@
#include <boost/mpl/equal_to.hpp>
#include <boost/mpl/assert.hpp>
-namespace boost { namespace fusion {
-
+namespace boost { namespace fusion
+{
struct deque_tag;
- namespace extension
+ namespace extension
{
template<typename T>
struct value_at_impl;
-
+
template<>
struct value_at_impl<deque_tag>
{
@@ -31,10 +31,12 @@ namespace boost { namespace fusion {
typedef typename Sequence::next_up next_up;
typedef typename Sequence::next_down next_down;
BOOST_MPL_ASSERT_RELATION(next_down::value, !=, next_up::value);
-
- typedef mpl::plus<next_down, mpl::int_<1> > offset;
- typedef mpl::int_<mpl::plus<N, offset>::value> adjusted_index;
- typedef typename detail::keyed_element_value_at<Sequence, adjusted_index>::type type;
+
+ static int const offset = next_down::value + 1;
+ typedef mpl::int_<(N::value + offset)> adjusted_index;
+ typedef typename
+ detail::keyed_element_value_at<Sequence, adjusted_index>::type
+ type;
};
};
}