forked from boostorg/fusion
Merge from trunk
[SVN r75980]
This commit is contained in:
@ -61,7 +61,7 @@ namespace boost { namespace fusion
|
||||
template <typename Sequence>
|
||||
vector1(
|
||||
Sequence const& seq
|
||||
, typename disable_if<is_convertible<Sequence, T0> >::type* = 0
|
||||
, typename boost::disable_if<is_convertible<Sequence, T0> >::type* = 0
|
||||
)
|
||||
: base_type(base_type::init_from_sequence(seq)) {}
|
||||
template <typename U0>
|
||||
@ -72,7 +72,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -157,7 +157,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -242,7 +242,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -327,7 +327,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -412,7 +412,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -497,7 +497,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -582,7 +582,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -667,7 +667,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -752,7 +752,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -837,7 +837,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
|
@ -73,7 +73,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -158,7 +158,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -243,7 +243,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -328,7 +328,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -413,7 +413,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -498,7 +498,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -583,7 +583,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -668,7 +668,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -753,7 +753,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -838,7 +838,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
|
@ -73,7 +73,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -158,7 +158,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -243,7 +243,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -328,7 +328,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -413,7 +413,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -498,7 +498,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -583,7 +583,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -668,7 +668,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -753,7 +753,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -838,7 +838,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
|
@ -73,7 +73,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -158,7 +158,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -243,7 +243,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -328,7 +328,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -413,7 +413,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -498,7 +498,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -583,7 +583,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -668,7 +668,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -753,7 +753,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -838,7 +838,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
|
@ -73,7 +73,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -158,7 +158,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -243,7 +243,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -328,7 +328,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -413,7 +413,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -498,7 +498,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -583,7 +583,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -668,7 +668,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -753,7 +753,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
@ -838,7 +838,7 @@ namespace boost { namespace fusion
|
||||
return *this;
|
||||
}
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
|
@ -36,7 +36,7 @@ namespace boost { namespace fusion
|
||||
: vec(rhs.vec) {}
|
||||
template <typename Sequence>
|
||||
vector(Sequence const& rhs)
|
||||
: vec(rhs) {}
|
||||
: vec(BOOST_FUSION_VECTOR_COPY_INIT()) {}
|
||||
|
||||
|
||||
|
||||
@ -116,6 +116,7 @@ namespace boost { namespace fusion
|
||||
return vec.at_impl(mpl::int_<I::value>());
|
||||
}
|
||||
private:
|
||||
BOOST_FUSION_VECTOR_CTOR_HELPER()
|
||||
vector_n vec;
|
||||
};
|
||||
}}
|
||||
|
@ -36,7 +36,7 @@ namespace boost { namespace fusion
|
||||
: vec(rhs.vec) {}
|
||||
template <typename Sequence>
|
||||
vector(Sequence const& rhs)
|
||||
: vec(rhs) {}
|
||||
: vec(BOOST_FUSION_VECTOR_COPY_INIT()) {}
|
||||
|
||||
|
||||
|
||||
@ -136,6 +136,7 @@ namespace boost { namespace fusion
|
||||
return vec.at_impl(mpl::int_<I::value>());
|
||||
}
|
||||
private:
|
||||
BOOST_FUSION_VECTOR_CTOR_HELPER()
|
||||
vector_n vec;
|
||||
};
|
||||
}}
|
||||
|
@ -36,7 +36,7 @@ namespace boost { namespace fusion
|
||||
: vec(rhs.vec) {}
|
||||
template <typename Sequence>
|
||||
vector(Sequence const& rhs)
|
||||
: vec(rhs) {}
|
||||
: vec(BOOST_FUSION_VECTOR_COPY_INIT()) {}
|
||||
|
||||
|
||||
|
||||
@ -156,6 +156,7 @@ namespace boost { namespace fusion
|
||||
return vec.at_impl(mpl::int_<I::value>());
|
||||
}
|
||||
private:
|
||||
BOOST_FUSION_VECTOR_CTOR_HELPER()
|
||||
vector_n vec;
|
||||
};
|
||||
}}
|
||||
|
@ -36,7 +36,7 @@ namespace boost { namespace fusion
|
||||
: vec(rhs.vec) {}
|
||||
template <typename Sequence>
|
||||
vector(Sequence const& rhs)
|
||||
: vec(rhs) {}
|
||||
: vec(BOOST_FUSION_VECTOR_COPY_INIT()) {}
|
||||
|
||||
|
||||
|
||||
@ -176,6 +176,7 @@ namespace boost { namespace fusion
|
||||
return vec.at_impl(mpl::int_<I::value>());
|
||||
}
|
||||
private:
|
||||
BOOST_FUSION_VECTOR_CTOR_HELPER()
|
||||
vector_n vec;
|
||||
};
|
||||
}}
|
||||
|
@ -36,7 +36,7 @@ namespace boost { namespace fusion
|
||||
: vec(rhs.vec) {}
|
||||
template <typename Sequence>
|
||||
vector(Sequence const& rhs)
|
||||
: vec(rhs) {}
|
||||
: vec(BOOST_FUSION_VECTOR_COPY_INIT()) {}
|
||||
|
||||
|
||||
|
||||
@ -196,6 +196,7 @@ namespace boost { namespace fusion
|
||||
return vec.at_impl(mpl::int_<I::value>());
|
||||
}
|
||||
private:
|
||||
BOOST_FUSION_VECTOR_CTOR_HELPER()
|
||||
vector_n vec;
|
||||
};
|
||||
}}
|
||||
|
@ -104,7 +104,7 @@
|
||||
BOOST_PP_CAT(vector, N)(
|
||||
Sequence const& seq
|
||||
#if (N == 1)
|
||||
, typename disable_if<is_convertible<Sequence, T0> >::type* /*dummy*/ = 0
|
||||
, typename boost::disable_if<is_convertible<Sequence, T0> >::type* /*dummy*/ = 0
|
||||
#endif
|
||||
)
|
||||
: base_type(base_type::init_from_sequence(seq)) {}
|
||||
@ -118,7 +118,7 @@
|
||||
}
|
||||
|
||||
template <typename Sequence>
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
|
@ -17,6 +17,38 @@
|
||||
#include <boost/type_traits/is_base_of.hpp>
|
||||
#include <boost/detail/workaround.hpp>
|
||||
|
||||
#if !defined(__WAVE__)
|
||||
|
||||
#if BOOST_WORKAROUND(BOOST_MSVC, <= 1600)
|
||||
|
||||
#define BOOST_FUSION_VECTOR_COPY_INIT() \
|
||||
ctor_helper(rhs, is_base_of<vector, Sequence>()) \
|
||||
|
||||
#define BOOST_FUSION_VECTOR_CTOR_HELPER() \
|
||||
static vector_n const& \
|
||||
ctor_helper(vector const& rhs, mpl::true_) \
|
||||
{ \
|
||||
return rhs.vec; \
|
||||
} \
|
||||
\
|
||||
template <typename T> \
|
||||
static T const& \
|
||||
ctor_helper(T const& rhs, mpl::false_) \
|
||||
{ \
|
||||
return rhs; \
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
#define BOOST_FUSION_VECTOR_COPY_INIT() \
|
||||
rhs \
|
||||
|
||||
#define BOOST_FUSION_VECTOR_CTOR_HELPER()
|
||||
|
||||
#endif
|
||||
|
||||
#endif // !defined(__WAVE__)
|
||||
|
||||
#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
|
||||
#include <boost/fusion/container/vector/detail/preprocessed/vector.hpp>
|
||||
#else
|
||||
@ -76,11 +108,7 @@ namespace boost { namespace fusion
|
||||
|
||||
template <typename Sequence>
|
||||
vector(Sequence const& rhs)
|
||||
#if BOOST_WORKAROUND(BOOST_MSVC, <= 1600)
|
||||
: vec(ctor_helper(rhs, is_base_of<vector, Sequence>())) {}
|
||||
#else
|
||||
: vec(rhs) {}
|
||||
#endif
|
||||
: vec(BOOST_FUSION_VECTOR_COPY_INIT()) {}
|
||||
|
||||
// Expand a couple of forwarding constructors for arguments
|
||||
// of type (T0), (T0, T1), (T0, T1, T2) etc. Example:
|
||||
@ -149,21 +177,7 @@ namespace boost { namespace fusion
|
||||
|
||||
private:
|
||||
|
||||
#if BOOST_WORKAROUND(BOOST_MSVC, <= 1600)
|
||||
static vector_n const&
|
||||
ctor_helper(vector const& rhs, mpl::true_)
|
||||
{
|
||||
return rhs.vec;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
static T const&
|
||||
ctor_helper(T const& rhs, mpl::false_)
|
||||
{
|
||||
return rhs;
|
||||
}
|
||||
#endif
|
||||
|
||||
BOOST_FUSION_VECTOR_CTOR_HELPER()
|
||||
vector_n vec;
|
||||
};
|
||||
}}
|
||||
|
Reference in New Issue
Block a user