forked from boostorg/fusion
Compare commits
1 Commits
boost-1.49
...
boost-1.48
Author | SHA1 | Date | |
---|---|---|---|
3abe58f3bb |
@ -96,7 +96,7 @@ namespace boost { namespace fusion
|
||||
{
|
||||
return type(fusion::prior(i.iterator_base));
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
template <typename Iterator>
|
||||
struct prior_impl<Iterator, true>
|
||||
|
@ -88,7 +88,7 @@ namespace boost { namespace fusion
|
||||
template <typename Sequence>
|
||||
cons(
|
||||
Sequence const& seq
|
||||
, typename boost::disable_if<
|
||||
, typename disable_if<
|
||||
mpl::or_<
|
||||
is_convertible<Sequence, cons> // use copy ctor instead
|
||||
, is_convertible<Sequence, Car> // use copy to car instead
|
||||
@ -119,7 +119,7 @@ namespace boost { namespace fusion
|
||||
}
|
||||
|
||||
template <typename Sequence>
|
||||
typename boost::disable_if<is_convertible<Sequence, Car>, cons&>::type
|
||||
typename disable_if<is_convertible<Sequence, Car>, cons&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type Iterator;
|
||||
|
@ -1,57 +0,0 @@
|
||||
/*=============================================================================
|
||||
Copyright (c) 2001-2011 Joel de Guzman
|
||||
Copyright (c) 2011 Brandon Kohn
|
||||
|
||||
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_MAP_DETAIL_AT_IMPL_HPP)
|
||||
#define BOOST_FUSION_MAP_DETAIL_AT_IMPL_HPP
|
||||
|
||||
#include <boost/fusion/support/detail/access.hpp>
|
||||
#include <boost/type_traits/is_const.hpp>
|
||||
#include <boost/mpl/at.hpp>
|
||||
#include <boost/mpl/int.hpp>
|
||||
|
||||
namespace boost { namespace fusion
|
||||
{
|
||||
struct map_tag;
|
||||
|
||||
namespace extension
|
||||
{
|
||||
template <typename Tag>
|
||||
struct at_impl;
|
||||
|
||||
template <>
|
||||
struct at_impl<map_tag>
|
||||
{
|
||||
template <typename Sequence, typename N>
|
||||
struct apply
|
||||
{
|
||||
typedef mpl::at<typename Sequence::storage_type::types, N> element;
|
||||
typedef typename detail::ref_result<element>::type type;
|
||||
|
||||
static type
|
||||
call(Sequence& m)
|
||||
{
|
||||
return m.get_data().at_impl(N());
|
||||
}
|
||||
};
|
||||
|
||||
template <typename Sequence, typename N>
|
||||
struct apply <Sequence const, N>
|
||||
{
|
||||
typedef mpl::at<typename Sequence::storage_type::types, N> element;
|
||||
typedef typename detail::cref_result<element>::type type;
|
||||
|
||||
static type
|
||||
call(Sequence const& m)
|
||||
{
|
||||
return m.get_data().at_impl(N());
|
||||
}
|
||||
};
|
||||
};
|
||||
}
|
||||
}}
|
||||
|
||||
#endif //BOOST_FUSION_MAP_DETAIL_AT_IMPL_HPP
|
@ -13,7 +13,7 @@ namespace boost { namespace fusion
|
||||
template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
|
||||
struct map : sequence_base<map<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9> >
|
||||
{
|
||||
struct category : random_access_traversal_tag, associative_tag {};
|
||||
struct category : forward_traversal_tag, associative_tag {};
|
||||
typedef map_tag fusion_tag;
|
||||
typedef fusion_sequence_tag tag;
|
||||
typedef mpl::false_ is_view;
|
||||
|
@ -13,7 +13,7 @@ namespace boost { namespace fusion
|
||||
template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19>
|
||||
struct map : sequence_base<map<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19> >
|
||||
{
|
||||
struct category : random_access_traversal_tag, associative_tag {};
|
||||
struct category : forward_traversal_tag, associative_tag {};
|
||||
typedef map_tag fusion_tag;
|
||||
typedef fusion_sequence_tag tag;
|
||||
typedef mpl::false_ is_view;
|
||||
|
@ -13,7 +13,7 @@ namespace boost { namespace fusion
|
||||
template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29>
|
||||
struct map : sequence_base<map<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29> >
|
||||
{
|
||||
struct category : random_access_traversal_tag, associative_tag {};
|
||||
struct category : forward_traversal_tag, associative_tag {};
|
||||
typedef map_tag fusion_tag;
|
||||
typedef fusion_sequence_tag tag;
|
||||
typedef mpl::false_ is_view;
|
||||
|
@ -13,7 +13,7 @@ namespace boost { namespace fusion
|
||||
template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39>
|
||||
struct map : sequence_base<map<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39> >
|
||||
{
|
||||
struct category : random_access_traversal_tag, associative_tag {};
|
||||
struct category : forward_traversal_tag, associative_tag {};
|
||||
typedef map_tag fusion_tag;
|
||||
typedef fusion_sequence_tag tag;
|
||||
typedef mpl::false_ is_view;
|
||||
|
@ -13,7 +13,7 @@ namespace boost { namespace fusion
|
||||
template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32 , typename T33 , typename T34 , typename T35 , typename T36 , typename T37 , typename T38 , typename T39 , typename T40 , typename T41 , typename T42 , typename T43 , typename T44 , typename T45 , typename T46 , typename T47 , typename T48 , typename T49>
|
||||
struct map : sequence_base<map<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49> >
|
||||
{
|
||||
struct category : random_access_traversal_tag, associative_tag {};
|
||||
struct category : forward_traversal_tag, associative_tag {};
|
||||
typedef map_tag fusion_tag;
|
||||
typedef fusion_sequence_tag tag;
|
||||
typedef mpl::false_ is_view;
|
||||
|
@ -1,34 +0,0 @@
|
||||
/*=============================================================================
|
||||
Copyright (c) 2001-2011 Joel de Guzman
|
||||
Copyright (c) 2011 Brandon Kohn
|
||||
|
||||
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_MAP_DETAIL_VALUE_AT_IMPL_HPP)
|
||||
#define BOOST_FUSION_MAP_DETAIL_VALUE_AT_IMPL_HPP
|
||||
|
||||
#include <boost/mpl/at.hpp>
|
||||
|
||||
namespace boost { namespace fusion
|
||||
{
|
||||
struct map_tag;
|
||||
|
||||
namespace extension
|
||||
{
|
||||
template <typename Tag>
|
||||
struct value_at_impl;
|
||||
|
||||
template <>
|
||||
struct value_at_impl<map_tag>
|
||||
{
|
||||
template <typename Sequence, typename N>
|
||||
struct apply
|
||||
{
|
||||
typedef typename mpl::at<typename Sequence::storage_type::types, N>::type type;
|
||||
};
|
||||
};
|
||||
}
|
||||
}}
|
||||
|
||||
#endif //BOOST_FUSION_MAP_DETAIL_VALUE_AT_IMPL_HPP
|
@ -11,8 +11,6 @@
|
||||
#include <boost/fusion/support/category_of.hpp>
|
||||
#include <boost/fusion/support/detail/access.hpp>
|
||||
#include <boost/fusion/container/map/map_fwd.hpp>
|
||||
#include <boost/fusion/container/map/detail/at_impl.hpp>
|
||||
#include <boost/fusion/container/map/detail/value_at_impl.hpp>
|
||||
#include <boost/fusion/container/map/detail/begin_impl.hpp>
|
||||
#include <boost/fusion/container/map/detail/end_impl.hpp>
|
||||
#include <boost/fusion/container/map/detail/value_of_impl.hpp>
|
||||
@ -52,7 +50,7 @@ namespace boost { namespace fusion
|
||||
template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_MAP_SIZE, typename T)>
|
||||
struct map : sequence_base<map<BOOST_PP_ENUM_PARAMS(FUSION_MAX_MAP_SIZE, T)> >
|
||||
{
|
||||
struct category : random_access_traversal_tag, associative_tag {};
|
||||
struct category : forward_traversal_tag, associative_tag {};
|
||||
|
||||
typedef map_tag fusion_tag;
|
||||
typedef fusion_sequence_tag tag; // this gets picked up by MPL
|
||||
|
@ -61,7 +61,7 @@ namespace boost { namespace fusion
|
||||
template <typename Sequence>
|
||||
vector1(
|
||||
Sequence const& seq
|
||||
, typename boost::disable_if<is_convertible<Sequence, T0> >::type* = 0
|
||||
, typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename 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(BOOST_FUSION_VECTOR_COPY_INIT()) {}
|
||||
: vec(rhs) {}
|
||||
|
||||
|
||||
|
||||
@ -116,7 +116,6 @@ 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(BOOST_FUSION_VECTOR_COPY_INIT()) {}
|
||||
: vec(rhs) {}
|
||||
|
||||
|
||||
|
||||
@ -136,7 +136,6 @@ 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(BOOST_FUSION_VECTOR_COPY_INIT()) {}
|
||||
: vec(rhs) {}
|
||||
|
||||
|
||||
|
||||
@ -156,7 +156,6 @@ 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(BOOST_FUSION_VECTOR_COPY_INIT()) {}
|
||||
: vec(rhs) {}
|
||||
|
||||
|
||||
|
||||
@ -176,7 +176,6 @@ 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(BOOST_FUSION_VECTOR_COPY_INIT()) {}
|
||||
: vec(rhs) {}
|
||||
|
||||
|
||||
|
||||
@ -196,7 +196,6 @@ 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 boost::disable_if<is_convertible<Sequence, T0> >::type* /*dummy*/ = 0
|
||||
, typename 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 boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
typename disable_if<is_convertible<Sequence, T0>, this_type&>::type
|
||||
operator=(Sequence const& seq)
|
||||
{
|
||||
typedef typename result_of::begin<Sequence const>::type I0;
|
||||
|
@ -17,38 +17,6 @@
|
||||
#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
|
||||
@ -108,7 +76,11 @@ namespace boost { namespace fusion
|
||||
|
||||
template <typename Sequence>
|
||||
vector(Sequence const& rhs)
|
||||
: vec(BOOST_FUSION_VECTOR_COPY_INIT()) {}
|
||||
#if BOOST_WORKAROUND(BOOST_MSVC, <= 1600)
|
||||
: vec(ctor_helper(rhs, is_base_of<vector, Sequence>())) {}
|
||||
#else
|
||||
: vec(rhs) {}
|
||||
#endif
|
||||
|
||||
// Expand a couple of forwarding constructors for arguments
|
||||
// of type (T0), (T0, T1), (T0, T1, T2) etc. Example:
|
||||
@ -177,7 +149,21 @@ namespace boost { namespace fusion
|
||||
|
||||
private:
|
||||
|
||||
BOOST_FUSION_VECTOR_CTOR_HELPER()
|
||||
#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
|
||||
|
||||
vector_n vec;
|
||||
};
|
||||
}}
|
||||
|
@ -74,7 +74,7 @@ namespace boost { namespace fusion
|
||||
{
|
||||
template <typename Iter1, typename Iter2>
|
||||
inline typename
|
||||
boost::enable_if<
|
||||
enable_if<
|
||||
mpl::and_<is_fusion_iterator<Iter1>, is_fusion_iterator<Iter2> >
|
||||
, bool
|
||||
>::type
|
||||
@ -85,7 +85,7 @@ namespace boost { namespace fusion
|
||||
|
||||
template <typename Iter1, typename Iter2>
|
||||
inline typename
|
||||
boost::enable_if<
|
||||
enable_if<
|
||||
mpl::and_<is_fusion_iterator<Iter1>, is_fusion_iterator<Iter2> >
|
||||
, bool
|
||||
>::type
|
||||
|
@ -37,7 +37,7 @@ namespace boost { namespace fusion
|
||||
{
|
||||
template <typename Seq1, typename Seq2>
|
||||
inline typename
|
||||
boost::enable_if<
|
||||
enable_if<
|
||||
traits::enable_equality<Seq1, Seq2>
|
||||
, bool
|
||||
>::type
|
||||
|
@ -37,7 +37,7 @@ namespace boost { namespace fusion
|
||||
{
|
||||
template <typename Seq1, typename Seq2>
|
||||
inline typename
|
||||
boost::enable_if<
|
||||
enable_if<
|
||||
traits::enable_comparison<Seq1, Seq2>
|
||||
, bool
|
||||
>::type
|
||||
|
@ -37,7 +37,7 @@ namespace boost { namespace fusion
|
||||
{
|
||||
template <typename Seq1, typename Seq2>
|
||||
inline typename
|
||||
boost::enable_if<
|
||||
enable_if<
|
||||
traits::enable_comparison<Seq1, Seq2>
|
||||
, bool
|
||||
>::type
|
||||
|
@ -28,7 +28,7 @@ namespace boost { namespace fusion
|
||||
{
|
||||
template <typename Seq1, typename Seq2>
|
||||
inline typename
|
||||
boost::enable_if<
|
||||
enable_if<
|
||||
traits::enable_comparison<Seq1, Seq2>
|
||||
, bool
|
||||
>::type
|
||||
|
@ -65,7 +65,7 @@ namespace boost { namespace fusion
|
||||
|
||||
template <typename Seq1, typename Seq2>
|
||||
inline typename
|
||||
boost::enable_if<
|
||||
enable_if<
|
||||
traits::enable_comparison<Seq1, Seq2>
|
||||
, bool
|
||||
>::type
|
||||
|
@ -40,7 +40,7 @@ namespace boost { namespace fusion
|
||||
{
|
||||
template <typename Seq1, typename Seq2>
|
||||
inline typename
|
||||
boost::enable_if<
|
||||
enable_if<
|
||||
traits::enable_equality<Seq1, Seq2>
|
||||
, bool
|
||||
>::type
|
||||
|
@ -27,7 +27,7 @@ namespace boost { namespace fusion
|
||||
{
|
||||
template <typename Sequence>
|
||||
inline typename
|
||||
boost::enable_if<
|
||||
enable_if<
|
||||
fusion::traits::is_sequence<Sequence>
|
||||
, std::istream&
|
||||
>::type
|
||||
|
@ -29,7 +29,7 @@ namespace boost { namespace fusion
|
||||
{
|
||||
template <typename Sequence>
|
||||
inline typename
|
||||
boost::enable_if<
|
||||
enable_if<
|
||||
fusion::traits::is_sequence<Sequence>
|
||||
, std::ostream&
|
||||
>::type
|
||||
|
@ -12,7 +12,6 @@
|
||||
#include <boost/fusion/support/deduce.hpp>
|
||||
#include <boost/fusion/container/vector/convert.hpp>
|
||||
#include <boost/fusion/view/transform_view.hpp>
|
||||
#include <boost/config.hpp>
|
||||
|
||||
|
||||
namespace boost { namespace fusion { namespace traits
|
||||
@ -30,13 +29,6 @@ namespace boost { namespace fusion { namespace traits
|
||||
struct result< Self(T) >
|
||||
: fusion::traits::deduce<T>
|
||||
{ };
|
||||
|
||||
// never called, but needed for decltype-based result_of (C++0x)
|
||||
#ifndef BOOST_NO_RVALUE_REFERENCES
|
||||
template <typename T>
|
||||
typename result< deducer(T) >::type
|
||||
operator()(T&&) const;
|
||||
#endif
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -46,29 +46,28 @@ namespace boost { namespace fusion
|
||||
namespace detail
|
||||
{
|
||||
BOOST_MPL_HAS_XXX_TRAIT_DEF(fusion_tag)
|
||||
|
||||
template <typename Sequence, typename Active>
|
||||
struct tag_of_impl
|
||||
: mpl::if_<fusion::detail::is_mpl_sequence<Sequence>,
|
||||
mpl::identity<mpl_sequence_tag>,
|
||||
mpl::identity<non_fusion_tag> >::type
|
||||
{};
|
||||
|
||||
template <typename Sequence>
|
||||
struct tag_of_impl<
|
||||
Sequence
|
||||
, typename boost::enable_if<detail::has_fusion_tag<Sequence> >::type>
|
||||
{
|
||||
typedef typename Sequence::fusion_tag type;
|
||||
};
|
||||
}
|
||||
|
||||
namespace traits
|
||||
{
|
||||
template <typename Sequence, typename Active>
|
||||
struct tag_of_fallback
|
||||
{
|
||||
typedef non_fusion_tag type;
|
||||
};
|
||||
|
||||
template <typename Sequence, typename Active>
|
||||
struct tag_of
|
||||
: boost::fusion::detail::tag_of_impl<Sequence, Active>
|
||||
: mpl::if_< fusion::detail::is_mpl_sequence<Sequence>,
|
||||
mpl::identity<mpl_sequence_tag>,
|
||||
tag_of_fallback<Sequence> >::type
|
||||
{};
|
||||
|
||||
template <typename Sequence>
|
||||
struct tag_of<Sequence, typename boost::enable_if<detail::has_fusion_tag<Sequence> >::type>
|
||||
{
|
||||
typedef typename Sequence::fusion_tag type;
|
||||
};
|
||||
}
|
||||
|
||||
namespace detail
|
||||
|
@ -12,6 +12,9 @@ namespace boost { namespace fusion
|
||||
{
|
||||
namespace traits
|
||||
{
|
||||
template <typename Sequence, typename Active = void>
|
||||
struct tag_of_fallback;
|
||||
|
||||
template<typename T, typename Active = void>
|
||||
struct tag_of;
|
||||
}
|
||||
|
@ -8,7 +8,6 @@
|
||||
#if !defined(FUSION_STRICTEST_TRAVERSAL_20060123_2101)
|
||||
#define FUSION_STRICTEST_TRAVERSAL_20060123_2101
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#include <boost/mpl/or.hpp>
|
||||
#include <boost/mpl/if.hpp>
|
||||
#include <boost/fusion/support/category_of.hpp>
|
||||
@ -54,13 +53,6 @@ namespace boost { namespace fusion
|
||||
|
||||
typedef typename stricter_traversal<tag1,tag2>::type type;
|
||||
};
|
||||
|
||||
// never called, but needed for decltype-based result_of (C++0x)
|
||||
#ifndef BOOST_NO_RVALUE_REFERENCES
|
||||
template<typename StrictestSoFar, typename Next>
|
||||
typename result<strictest_traversal_impl(StrictestSoFar, Next)>::type
|
||||
operator()(StrictestSoFar&&, Next&&) const;
|
||||
#endif
|
||||
};
|
||||
|
||||
template<typename Sequence>
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*=============================================================================
|
||||
Copyright (c) 2009 Hartmut Kaiser
|
||||
|
||||
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)
|
||||
==============================================================================*/
|
||||
|
||||
@ -27,7 +27,7 @@
|
||||
namespace boost { namespace fusion { namespace result_of
|
||||
{
|
||||
template <typename Sequence
|
||||
, BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(FUSION_MAX_VECTOR_SIZE, int I, INT_MAX)>
|
||||
, BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(FUSION_MAX_VECTOR_SIZE, int I, LONG_MAX)>
|
||||
struct as_nview
|
||||
{
|
||||
typedef mpl::vector_c<
|
||||
|
@ -23,8 +23,6 @@
|
||||
#include <boost/fusion/container/vector.hpp>
|
||||
#include <boost/fusion/view/transform_view.hpp>
|
||||
|
||||
#include <boost/config.hpp>
|
||||
|
||||
namespace boost { namespace fusion
|
||||
{
|
||||
namespace detail
|
||||
@ -37,21 +35,12 @@ namespace boost { namespace fusion
|
||||
template<typename U>
|
||||
struct result<addref(U)> : add_reference<U> {};
|
||||
|
||||
#ifdef BOOST_NO_RVALUE_REFERENCES
|
||||
template <typename T>
|
||||
typename add_reference<T>::type
|
||||
operator()(T& x) const
|
||||
{
|
||||
return x;
|
||||
}
|
||||
#else
|
||||
template <typename T>
|
||||
typename result<addref(T)>::type
|
||||
operator()(T&& x) const
|
||||
{
|
||||
return x;
|
||||
}
|
||||
#endif
|
||||
};
|
||||
|
||||
struct addconstref
|
||||
|
@ -62,7 +62,7 @@ namespace boost { namespace fusion {
|
||||
|
||||
template<typename Seq>
|
||||
typename result<endpoints(Seq const&)>::type
|
||||
operator()(Seq const& seq) const
|
||||
operator()(Seq const& seq)
|
||||
{
|
||||
return fusion::advance<M>(fusion::begin(seq));
|
||||
}
|
||||
|
@ -16,7 +16,6 @@
|
||||
#include <boost/mpl/eval_if.hpp>
|
||||
#include <boost/mpl/identity.hpp>
|
||||
#include <boost/type_traits/is_same.hpp>
|
||||
#include <boost/config.hpp>
|
||||
|
||||
namespace boost { namespace fusion {
|
||||
|
||||
@ -36,13 +35,6 @@ namespace boost { namespace fusion {
|
||||
mpl::identity<unused_type>,
|
||||
result_of::value_at<typename remove_reference<Seq>::type, N> >
|
||||
{};
|
||||
|
||||
// never called, but needed for decltype-based result_of (C++0x)
|
||||
#ifndef BOOST_NO_RVALUE_REFERENCES
|
||||
template<typename Seq>
|
||||
typename result<poly_value_at(Seq)>::type
|
||||
operator()(Seq&&) const;
|
||||
#endif
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -16,7 +16,6 @@
|
||||
#include <boost/mpl/eval_if.hpp>
|
||||
#include <boost/mpl/identity.hpp>
|
||||
#include <boost/type_traits/is_same.hpp>
|
||||
#include <boost/config.hpp>
|
||||
|
||||
namespace boost { namespace fusion
|
||||
{
|
||||
@ -35,13 +34,6 @@ namespace boost { namespace fusion
|
||||
mpl::identity<unused_type>,
|
||||
result_of::value_of<It> >
|
||||
{};
|
||||
|
||||
// never called, but needed for decltype-based result_of (C++0x)
|
||||
#ifndef BOOST_NO_RVALUE_REFERENCES
|
||||
template<typename It>
|
||||
typename result<poly_value_of(It)>::type
|
||||
operator()(It&&) const;
|
||||
#endif
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -37,8 +37,6 @@
|
||||
#include <boost/type_traits/remove_reference.hpp>
|
||||
#include <boost/type_traits/is_reference.hpp>
|
||||
|
||||
#include <boost/config.hpp>
|
||||
|
||||
namespace boost { namespace fusion {
|
||||
|
||||
namespace detail
|
||||
@ -66,13 +64,6 @@ namespace boost { namespace fusion {
|
||||
result_of::size<SeqClass>,
|
||||
mpl::int_<high_int> >::type type;
|
||||
};
|
||||
|
||||
// never called, but needed for decltype-based result_of (C++0x)
|
||||
#ifndef BOOST_NO_RVALUE_REFERENCES
|
||||
template<typename Seq>
|
||||
typename result<seq_ref_size(Seq)>::type
|
||||
operator()(Seq&&) const;
|
||||
#endif
|
||||
};
|
||||
|
||||
struct poly_min
|
||||
@ -87,13 +78,6 @@ namespace boost { namespace fusion {
|
||||
typedef typename remove_reference<Rhs>::type rhs;
|
||||
typedef typename mpl::min<lhs, rhs>::type type;
|
||||
};
|
||||
|
||||
// never called, but needed for decltype-based result_of (C++0x)
|
||||
#ifndef BOOST_NO_RVALUE_REFERENCES
|
||||
template<typename Lhs, typename Rhs>
|
||||
typename result<poly_min(Lhs, Rhs)>::type
|
||||
operator()(Lhs&&, Rhs&&) const;
|
||||
#endif
|
||||
};
|
||||
|
||||
template<typename Sequences>
|
||||
|
Reference in New Issue
Block a user