diff --git a/include/boost/fusion/container/deque/cpp03_deque.hpp b/include/boost/fusion/container/deque/cpp03_deque.hpp index d3eaa7cd..5804d890 100644 --- a/include/boost/fusion/container/deque/cpp03_deque.hpp +++ b/include/boost/fusion/container/deque/cpp03_deque.hpp @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/include/boost/fusion/container/deque/cpp11_deque.hpp b/include/boost/fusion/container/deque/cpp11_deque.hpp index c6d70d33..bcb6c6c8 100644 --- a/include/boost/fusion/container/deque/cpp11_deque.hpp +++ b/include/boost/fusion/container/deque/cpp11_deque.hpp @@ -14,6 +14,7 @@ #include #include +#include #include #include #include @@ -27,46 +28,6 @@ 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 add_reference::type>::type head - , typename add_reference::type>::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...> {}; - } - struct deque_tag; template diff --git a/include/boost/fusion/container/deque/detail/deque_keyed_values.hpp b/include/boost/fusion/container/deque/detail/cpp03_deque_keyed_values.hpp similarity index 100% rename from include/boost/fusion/container/deque/detail/deque_keyed_values.hpp rename to include/boost/fusion/container/deque/detail/cpp03_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..e8ae0fa1 --- /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 add_reference::type>::type head + , typename add_reference::type>::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