prelude to iterator_facade and sequence_facade

[SVN r35316]
This commit is contained in:
Joel de Guzman
2006-09-25 08:37:16 +00:00
parent a37b435ce6
commit 654fd0918e
33 changed files with 160 additions and 128 deletions

View File

@ -22,7 +22,7 @@
namespace boost { namespace fusion
{
struct filter_view_tag;
struct forward_sequence_tag;
struct forward_traversal_tag;
struct fusion_sequence_tag;
template <typename Sequence, typename Pred>
@ -30,7 +30,7 @@ namespace boost { namespace fusion
{
typedef filter_view_tag fusion_tag;
typedef fusion_sequence_tag tag; // this gets picked up by MPL
typedef forward_sequence_tag category;
typedef forward_traversal_tag category;
typedef mpl::true_ is_view;
typedef typename result_of::begin<Sequence>::type first_type;

View File

@ -9,7 +9,6 @@
#define FUSION_ITERATOR_RANGE_05062005_1224
#include <boost/fusion/support/detail/access.hpp>
#include <boost/fusion/support/detail/iterator_to_sequence_category.hpp>
#include <boost/fusion/support/sequence_base.hpp>
#include <boost/fusion/support/category_of.hpp>
#include <boost/fusion/sequence/view/iterator_range/detail/begin_impl.hpp>
@ -33,11 +32,7 @@ namespace boost { namespace fusion
typedef typename result_of::distance<begin_type, end_type>::type size;
typedef mpl::true_ is_view;
typedef typename
detail::iterator_to_sequence_category<
typename traits::category_of<begin_type>::type
>::type
category;
typedef typename traits::category_of<begin_type>::type category;
iterator_range(First const& first, Last const& last)
: first(convert_iterator<First>::call(first))

View File

@ -24,7 +24,7 @@
namespace boost { namespace fusion
{
struct joint_view_tag;
struct forward_sequence_tag;
struct forward_traversal_tag;
struct fusion_sequence_tag;
template <typename Sequence1, typename Sequence2>
@ -32,7 +32,7 @@ namespace boost { namespace fusion
{
typedef joint_view_tag fusion_tag;
typedef fusion_sequence_tag tag; // this gets picked up by MPL
typedef forward_sequence_tag category;
typedef forward_traversal_tag category;
typedef mpl::true_ is_view;
typedef typename result_of::begin<Sequence1>::type first_type;

View File

@ -18,7 +18,7 @@
#include <boost/fusion/sequence/intrinsic/begin.hpp>
#include <boost/fusion/sequence/intrinsic/end.hpp>
#include <boost/fusion/sequence/intrinsic/size.hpp>
#include <boost/type_traits/is_base_and_derived.hpp>
#include <boost/type_traits/is_base_of.hpp>
#include <boost/static_assert.hpp>
#include <boost/mpl/bool.hpp>
@ -40,7 +40,7 @@ namespace boost { namespace fusion
typedef typename result_of::size<Sequence>::type size;
BOOST_STATIC_ASSERT((
is_base_and_derived<
is_base_of<
bidirectional_traversal_tag
, typename traits::category_of<first_type>::type>::value));

View File

@ -17,7 +17,7 @@
#include <boost/fusion/sequence/view/reverse_view/detail/advance_impl.hpp>
#include <boost/fusion/sequence/view/reverse_view/detail/distance_impl.hpp>
#include <boost/fusion/sequence/view/reverse_view/detail/value_of_impl.hpp>
#include <boost/type_traits/is_base_and_derived.hpp>
#include <boost/type_traits/is_base_of.hpp>
#include <boost/static_assert.hpp>
namespace boost { namespace fusion
@ -34,7 +34,7 @@ namespace boost { namespace fusion
typedef typename traits::category_of<first_type>::type category;
BOOST_STATIC_ASSERT((
is_base_and_derived<
is_base_of<
bidirectional_traversal_tag
, category>::value));

View File

@ -20,7 +20,7 @@
namespace boost { namespace fusion
{
struct single_view_tag;
struct forward_sequence_tag;
struct forward_traversal_tag;
struct fusion_sequence_tag;
template <typename T>
@ -28,7 +28,7 @@ namespace boost { namespace fusion
{
typedef single_view_tag fusion_tag;
typedef fusion_sequence_tag tag; // this gets picked up by MPL
typedef forward_sequence_tag category;
typedef forward_traversal_tag category;
typedef mpl::true_ is_view;
typedef mpl::int_<1> size;
typedef T value_type;