forked from boostorg/fusion
merge from trunk
[SVN r56178]
This commit is contained in:
@ -31,14 +31,14 @@ namespace boost { namespace fusion { namespace detail
|
||||
template <typename Iterator>
|
||||
struct apply
|
||||
{
|
||||
typedef vector<> type;
|
||||
typedef vector0<> type;
|
||||
};
|
||||
|
||||
template <typename Iterator>
|
||||
static typename apply<Iterator>::type
|
||||
call(Iterator)
|
||||
{
|
||||
return vector<>();
|
||||
return vector0<>();
|
||||
}
|
||||
};
|
||||
|
||||
@ -82,7 +82,7 @@ namespace boost { namespace fusion { namespace detail
|
||||
{
|
||||
BOOST_PP_REPEAT(N, BOOST_FUSION_NEXT_ITERATOR, _)
|
||||
BOOST_PP_REPEAT(N, BOOST_FUSION_VALUE_OF_ITERATOR, _)
|
||||
typedef vector<BOOST_PP_ENUM_PARAMS(N, T)> type;
|
||||
typedef BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM_PARAMS(N, T)> type;
|
||||
};
|
||||
|
||||
template <typename Iterator>
|
||||
|
@ -48,7 +48,7 @@ namespace boost { namespace fusion { namespace detail
|
||||
template <>
|
||||
struct vector_n_chooser<BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, void_ BOOST_PP_INTERCEPT)>
|
||||
{
|
||||
typedef vector0 type;
|
||||
typedef vector0<> type;
|
||||
};
|
||||
|
||||
#define BOOST_PP_FILENAME_1 \
|
||||
|
@ -56,7 +56,7 @@ namespace boost { namespace fusion
|
||||
|
||||
template <typename Sequence>
|
||||
vector(Sequence const& rhs)
|
||||
#if BOOST_WORKAROUND(BOOST_MSVC, <= 1400)
|
||||
#if BOOST_WORKAROUND(BOOST_MSVC, <= 1500)
|
||||
: vec(ctor_helper(rhs, is_base_of<vector, Sequence>())) {}
|
||||
#else
|
||||
: vec(rhs) {}
|
||||
@ -129,7 +129,7 @@ namespace boost { namespace fusion
|
||||
|
||||
private:
|
||||
|
||||
#if BOOST_WORKAROUND(BOOST_MSVC, <= 1400)
|
||||
#if BOOST_WORKAROUND(BOOST_MSVC, <= 1500)
|
||||
static vector_n const&
|
||||
ctor_helper(vector const& rhs, mpl::true_)
|
||||
{
|
||||
|
@ -39,7 +39,8 @@ namespace boost { namespace fusion
|
||||
struct fusion_sequence_tag;
|
||||
struct random_access_traversal_tag;
|
||||
|
||||
struct vector0 : sequence_base<vector0>
|
||||
template <typename Dummy = void>
|
||||
struct vector0 : sequence_base<vector0<Dummy> >
|
||||
{
|
||||
typedef mpl::vector0<> types;
|
||||
typedef vector_tag fusion_tag;
|
||||
|
@ -7,6 +7,11 @@
|
||||
#if !defined(FUSION_VECTOR_ITERATOR_05042005_0635)
|
||||
#define FUSION_VECTOR_ITERATOR_05042005_0635
|
||||
|
||||
#if defined (BOOST_MSVC)
|
||||
# pragma warning(push)
|
||||
# pragma warning (disable: 4512) // assignment operator could not be generated.
|
||||
#endif
|
||||
|
||||
#include <boost/fusion/support/iterator_base.hpp>
|
||||
#include <boost/fusion/container/vector/detail/deref_impl.hpp>
|
||||
#include <boost/fusion/container/vector/detail/value_of_impl.hpp>
|
||||
@ -42,5 +47,9 @@ namespace boost { namespace fusion
|
||||
};
|
||||
}}
|
||||
|
||||
#if defined (BOOST_MSVC)
|
||||
# pragma warning(pop)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
Reference in New Issue
Block a user