Merge branch 'develop' of github.com:boostorg/fusion into develop

This commit is contained in:
Joel de Guzman
2015-01-05 15:04:34 +08:00
20 changed files with 246 additions and 44 deletions

View File

@ -18,12 +18,11 @@
#include <boost/fusion/container/deque/detail/cpp03/deque_keyed_values.hpp>
#include <boost/fusion/container/deque/detail/cpp03/deque_initial_size.hpp>
#include <boost/fusion/support/sequence_base.hpp>
#include <boost/fusion/support/detail/access.hpp>
#include <boost/fusion/container/deque/detail/keyed_element.hpp>
#include <boost/preprocessor/repetition/enum_params.hpp>
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
#include <boost/type_traits/add_reference.hpp>
#include <boost/type_traits/add_const.hpp>
#include <boost/type_traits/is_convertible.hpp>
#include <boost/fusion/container/deque/deque_fwd.hpp>
@ -35,7 +34,6 @@
#include <boost/fusion/sequence/intrinsic/begin.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/fusion/support/sequence_base.hpp>
#include <boost/fusion/support/void.hpp>
#include <boost/utility/enable_if.hpp>
@ -76,8 +74,7 @@ namespace boost { namespace fusion {
typedef typename detail::deque_keyed_values<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, T)>::type base;
typedef typename detail::deque_initial_size<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, T)>::type size;
typedef mpl::int_<size::value> next_up;
typedef mpl::int_<
mpl::if_<mpl::equal_to<size, mpl::int_<0> >, mpl::int_<0>, mpl::int_<-1> >::type::value> next_down;
typedef mpl::int_<-1> next_down;
typedef mpl::false_ is_view;
#include <boost/fusion/container/deque/detail/cpp03/deque_forward_ctor.hpp>
@ -87,7 +84,7 @@ namespace boost { namespace fusion {
{}
BOOST_FUSION_GPU_ENABLED
explicit deque(typename add_reference<typename add_const<T0>::type>::type t0)
explicit deque(typename detail::call_param<T0>::type t0)
: base(t0, detail::nil_keyed_element())
{}
@ -169,7 +166,7 @@ FUSION_HASH endif
typedef bidirectional_traversal_tag category;
typedef mpl::int_<0> size;
typedef mpl::int_<0> next_up;
typedef mpl::int_<0> next_down;
typedef mpl::int_<-1> next_down;
typedef mpl::false_ is_view;
template <typename Sequence>

View File

@ -36,7 +36,7 @@ FUSION_HASH if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \
(defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES))
BOOST_FUSION_GPU_ENABLED
deque(BOOST_PP_ENUM_BINARY_PARAMS(N, typename add_reference<typename add_const<T, >::type>::type t))
deque(BOOST_PP_ENUM_BINARY_PARAMS(N, typename detail::call_param<T, >::type t))
: base(detail::deque_keyed_values<BOOST_PP_ENUM_PARAMS(N, T)>::construct(BOOST_PP_ENUM_PARAMS(N, t)))
{}
#endif

View File

@ -35,7 +35,7 @@
#define N BOOST_PP_ITERATION()
BOOST_FUSION_GPU_ENABLED
static type construct(BOOST_PP_ENUM_BINARY_PARAMS(N, typename add_reference<typename add_const<T, >::type>::type t))
static type construct(BOOST_PP_ENUM_BINARY_PARAMS(N, typename detail::call_param<T, >::type t))
{
return type(t0,
deque_keyed_values_impl<