refactoring for v2.1

[SVN r40208]
This commit is contained in:
Joel de Guzman
2007-10-20 11:01:50 +00:00
parent 0f11e531ac
commit a77599ed49
21 changed files with 72 additions and 73 deletions

View File

@ -1,20 +1,21 @@
/*============================================================================= /*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman Copyright (c) 2001-2006 Joel de Guzman
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) file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/ ==============================================================================*/
#if !defined(FUSION_ERASE_07232005_0534) #if !defined(FUSION_ERASE_07232005_0534)
#define FUSION_ERASE_07232005_0534 #define FUSION_ERASE_07232005_0534
#include <boost/fusion/iterator/equal_to.hpp>
#include <boost/fusion/iterator/mpl/convert_iterator.hpp>
#include <boost/fusion/sequence/container/vector/vector10.hpp> #include <boost/fusion/sequence/container/vector/vector10.hpp>
#include <boost/fusion/sequence/view/joint_view/joint_view.hpp> #include <boost/fusion/sequence/view/joint_view/joint_view.hpp>
#include <boost/fusion/sequence/view/iterator_range/iterator_range.hpp> #include <boost/fusion/sequence/view/iterator_range/iterator_range.hpp>
#include <boost/fusion/support/detail/as_fusion_element.hpp> #include <boost/fusion/support/detail/as_fusion_element.hpp>
#include <boost/fusion/sequence/intrinsic/begin.hpp> #include <boost/fusion/sequence/intrinsic/begin.hpp>
#include <boost/fusion/sequence/intrinsic/end.hpp> #include <boost/fusion/sequence/intrinsic/end.hpp>
#include <boost/fusion/iterator/equal_to.hpp> #include <boost/fusion/sequence/adapted/mpl/mpl_iterator.hpp>
#include <boost/fusion/iterator/mpl/convert_iterator.hpp>
namespace boost { namespace fusion namespace boost { namespace fusion
{ {
@ -25,7 +26,7 @@ namespace boost { namespace fusion
{ {
typedef typename result_of::end<Sequence>::type seq_last_type; typedef typename result_of::end<Sequence>::type seq_last_type;
typedef typename convert_iterator<First>::type first_type; typedef typename convert_iterator<First>::type first_type;
typedef typename typedef typename
mpl::if_< mpl::if_<
result_of::equal_to<first_type, seq_last_type> result_of::equal_to<first_type, seq_last_type>
, first_type , first_type
@ -33,19 +34,19 @@ namespace boost { namespace fusion
>::type >::type
type; type;
static type static type
call(First const& first, mpl::false_) call(First const& first, mpl::false_)
{ {
return fusion::next(convert_iterator<First>::call(first)); return fusion::next(convert_iterator<First>::call(first));
} }
static type static type
call(First const& first, mpl::true_) call(First const& first, mpl::true_)
{ {
return convert_iterator<First>::call(first); return convert_iterator<First>::call(first);
} }
static type static type
call(First const& first) call(First const& first)
{ {
return call(first, result_of::equal_to<first_type, seq_last_type>()); return call(first, result_of::equal_to<first_type, seq_last_type>());

View File

@ -1,20 +1,21 @@
/*============================================================================= /*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman Copyright (c) 2001-2006 Joel de Guzman
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) file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/ ==============================================================================*/
#if !defined(FUSION_INSERT_07222005_0730) #if !defined(FUSION_INSERT_07222005_0730)
#define FUSION_INSERT_07222005_0730 #define FUSION_INSERT_07222005_0730
#include <boost/fusion/support/detail/as_fusion_element.hpp>
#include <boost/fusion/iterator/mpl/convert_iterator.hpp>
#include <boost/fusion/sequence/container/vector/vector10.hpp> #include <boost/fusion/sequence/container/vector/vector10.hpp>
#include <boost/fusion/sequence/view/joint_view/joint_view.hpp> #include <boost/fusion/sequence/view/joint_view/joint_view.hpp>
#include <boost/fusion/sequence/view/single_view/single_view.hpp> #include <boost/fusion/sequence/view/single_view/single_view.hpp>
#include <boost/fusion/sequence/view/iterator_range/iterator_range.hpp> #include <boost/fusion/sequence/view/iterator_range/iterator_range.hpp>
#include <boost/fusion/support/detail/as_fusion_element.hpp>
#include <boost/fusion/sequence/intrinsic/begin.hpp> #include <boost/fusion/sequence/intrinsic/begin.hpp>
#include <boost/fusion/sequence/intrinsic/end.hpp> #include <boost/fusion/sequence/intrinsic/end.hpp>
#include <boost/fusion/iterator/mpl/convert_iterator.hpp> #include <boost/fusion/sequence/adapted/mpl/mpl_iterator.hpp>
namespace boost { namespace fusion namespace boost { namespace fusion
{ {
@ -42,7 +43,7 @@ namespace boost { namespace fusion
insert(Sequence const& seq, Position const& pos, T const& x) insert(Sequence const& seq, Position const& pos, T const& x)
{ {
typedef result_of::insert< typedef result_of::insert<
Sequence const, Position, T> Sequence const, Position, T>
result_of; result_of;
typedef typename result_of::left_type left_type; typedef typename result_of::left_type left_type;
typedef typename result_of::right_type right_type; typedef typename result_of::right_type right_type;

View File

@ -1,19 +1,20 @@
/*============================================================================= /*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman Copyright (c) 2001-2006 Joel de Guzman
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) file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/ ==============================================================================*/
#if !defined(FUSION_INSERT_RANGE_009172005_1147) #if !defined(FUSION_INSERT_RANGE_009172005_1147)
#define FUSION_INSERT_RANGE_009172005_1147 #define FUSION_INSERT_RANGE_009172005_1147
#include <boost/fusion/iterator/mpl/convert_iterator.hpp>
#include <boost/fusion/sequence/container/vector/vector10.hpp> #include <boost/fusion/sequence/container/vector/vector10.hpp>
#include <boost/fusion/sequence/view/joint_view/joint_view.hpp> #include <boost/fusion/sequence/view/joint_view/joint_view.hpp>
#include <boost/fusion/sequence/view/iterator_range/iterator_range.hpp> #include <boost/fusion/sequence/view/iterator_range/iterator_range.hpp>
#include <boost/fusion/support/detail/as_fusion_element.hpp> #include <boost/fusion/support/detail/as_fusion_element.hpp>
#include <boost/fusion/sequence/intrinsic/begin.hpp> #include <boost/fusion/sequence/intrinsic/begin.hpp>
#include <boost/fusion/sequence/intrinsic/end.hpp> #include <boost/fusion/sequence/intrinsic/end.hpp>
#include <boost/fusion/iterator/mpl/convert_iterator.hpp> #include <boost/fusion/sequence/adapted/mpl/mpl_iterator.hpp>
namespace boost { namespace fusion namespace boost { namespace fusion
{ {

View File

@ -1,19 +1,21 @@
/*============================================================================= /*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman Copyright (c) 2001-2006 Joel de Guzman
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) file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/ ==============================================================================*/
#if !defined(FUSION_CONVERT_ITERATOR_05062005_1218) #if !defined(FUSION_CONVERT_ITERATOR_05062005_1218)
#define FUSION_CONVERT_ITERATOR_05062005_1218 #define FUSION_CONVERT_ITERATOR_05062005_1218
#include <boost/fusion/support/is_iterator.hpp> #include <boost/fusion/support/is_iterator.hpp>
#include <boost/fusion/sequence/adapted/mpl/mpl_iterator.hpp>
#include <boost/mpl/if.hpp> #include <boost/mpl/if.hpp>
#include <boost/mpl/bool.hpp> #include <boost/mpl/bool.hpp>
namespace boost { namespace fusion namespace boost { namespace fusion
{ {
template <typename Iterator>
struct mpl_iterator; // forward declaration
// Test T. If it is a fusion iterator, return a reference to it. // Test T. If it is a fusion iterator, return a reference to it.
// else, assume it is an mpl iterator. // else, assume it is an mpl iterator.

View File

@ -12,6 +12,7 @@
#include <boost/mpl/minus.hpp> #include <boost/mpl/minus.hpp>
#include <boost/mpl/next_prior.hpp> #include <boost/mpl/next_prior.hpp>
#include <boost/mpl/and.hpp> #include <boost/mpl/and.hpp>
#include <boost/fusion/iterator/mpl/convert_iterator.hpp>
#include <boost/fusion/sequence/container/list/cons.hpp> #include <boost/fusion/sequence/container/list/cons.hpp>
#include <boost/fusion/sequence/view/joint_view.hpp> #include <boost/fusion/sequence/view/joint_view.hpp>
#include <boost/fusion/sequence/view/single_view.hpp> #include <boost/fusion/sequence/view/single_view.hpp>
@ -19,6 +20,7 @@
#include <boost/fusion/sequence/view/iterator_range.hpp> #include <boost/fusion/sequence/view/iterator_range.hpp>
#include <boost/fusion/sequence/view/ext_/multiple_view.hpp> #include <boost/fusion/sequence/view/ext_/multiple_view.hpp>
#include <boost/fusion/sequence/view/ext_/segmented_iterator.hpp> #include <boost/fusion/sequence/view/ext_/segmented_iterator.hpp>
#include <boost/fusion/sequence/adapted/mpl/mpl_iterator.hpp>
namespace boost { namespace fusion namespace boost { namespace fusion
{ {

View File

@ -1,13 +1,14 @@
/*============================================================================= /*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman Copyright (c) 2001-2006 Joel de Guzman
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) file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/ ==============================================================================*/
#if !defined(FUSION_FILTER_VIEW_ITERATOR_05062005_0849) #if !defined(FUSION_FILTER_VIEW_ITERATOR_05062005_0849)
#define FUSION_FILTER_VIEW_ITERATOR_05062005_0849 #define FUSION_FILTER_VIEW_ITERATOR_05062005_0849
#include <boost/fusion/iterator/mpl/convert_iterator.hpp> #include <boost/fusion/iterator/mpl/convert_iterator.hpp>
#include <boost/fusion/sequence/adapted/mpl/mpl_iterator.hpp>
#include <boost/fusion/support/iterator_base.hpp> #include <boost/fusion/support/iterator_base.hpp>
#include <boost/fusion/sequence/view/filter_view/detail/deref_impl.hpp> #include <boost/fusion/sequence/view/filter_view/detail/deref_impl.hpp>
#include <boost/fusion/sequence/view/filter_view/detail/next_impl.hpp> #include <boost/fusion/sequence/view/filter_view/detail/next_impl.hpp>

View File

@ -1,7 +1,7 @@
/*============================================================================= /*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman Copyright (c) 2001-2006 Joel de Guzman
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) file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/ ==============================================================================*/
#if !defined(FUSION_ITERATOR_RANGE_05062005_1224) #if !defined(FUSION_ITERATOR_RANGE_05062005_1224)
@ -10,12 +10,13 @@
#include <boost/fusion/support/detail/access.hpp> #include <boost/fusion/support/detail/access.hpp>
#include <boost/fusion/support/sequence_base.hpp> #include <boost/fusion/support/sequence_base.hpp>
#include <boost/fusion/support/category_of.hpp> #include <boost/fusion/support/category_of.hpp>
#include <boost/fusion/iterator/distance.hpp>
#include <boost/fusion/iterator/mpl/convert_iterator.hpp>
#include <boost/fusion/sequence/view/iterator_range/detail/begin_impl.hpp> #include <boost/fusion/sequence/view/iterator_range/detail/begin_impl.hpp>
#include <boost/fusion/sequence/view/iterator_range/detail/end_impl.hpp> #include <boost/fusion/sequence/view/iterator_range/detail/end_impl.hpp>
#include <boost/fusion/sequence/view/iterator_range/detail/at_impl.hpp> #include <boost/fusion/sequence/view/iterator_range/detail/at_impl.hpp>
#include <boost/fusion/sequence/view/iterator_range/detail/value_at_impl.hpp> #include <boost/fusion/sequence/view/iterator_range/detail/value_at_impl.hpp>
#include <boost/fusion/iterator/mpl/convert_iterator.hpp> #include <boost/fusion/sequence/adapted/mpl/mpl_iterator.hpp>
#include <boost/fusion/iterator/distance.hpp>
#include <boost/mpl/bool.hpp> #include <boost/mpl/bool.hpp>
namespace boost { namespace fusion namespace boost { namespace fusion

View File

@ -1,7 +1,7 @@
/*============================================================================= /*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman Copyright (c) 2001-2006 Joel de Guzman
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) file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/ ==============================================================================*/
#if !defined(FUSION_JOINT_VIEW_ITERATOR_07162005_0140) #if !defined(FUSION_JOINT_VIEW_ITERATOR_07162005_0140)
@ -10,6 +10,7 @@
#include <boost/fusion/support/iterator_base.hpp> #include <boost/fusion/support/iterator_base.hpp>
#include <boost/fusion/iterator/equal_to.hpp> #include <boost/fusion/iterator/equal_to.hpp>
#include <boost/fusion/iterator/mpl/convert_iterator.hpp> #include <boost/fusion/iterator/mpl/convert_iterator.hpp>
#include <boost/fusion/sequence/adapted/mpl/mpl_iterator.hpp>
#include <boost/fusion/sequence/view/joint_view/detail/deref_impl.hpp> #include <boost/fusion/sequence/view/joint_view/detail/deref_impl.hpp>
#include <boost/fusion/sequence/view/joint_view/detail/next_impl.hpp> #include <boost/fusion/sequence/view/joint_view/detail/next_impl.hpp>
#include <boost/fusion/sequence/view/joint_view/detail/value_of_impl.hpp> #include <boost/fusion/sequence/view/joint_view/detail/value_of_impl.hpp>

View File

@ -11,6 +11,7 @@
#include <boost/fusion/support/iterator_base.hpp> #include <boost/fusion/support/iterator_base.hpp>
#include <boost/fusion/support/category_of.hpp> #include <boost/fusion/support/category_of.hpp>
#include <boost/fusion/iterator/mpl/convert_iterator.hpp> #include <boost/fusion/iterator/mpl/convert_iterator.hpp>
#include <boost/fusion/sequence/adapted/mpl/mpl_iterator.hpp>
#include <boost/fusion/sequence/intrinsic/begin.hpp> #include <boost/fusion/sequence/intrinsic/begin.hpp>
#include <boost/fusion/sequence/intrinsic/end.hpp> #include <boost/fusion/sequence/intrinsic/end.hpp>
#include <boost/fusion/sequence/view/repetitive_view/detail/deref_impl.hpp> #include <boost/fusion/sequence/view/repetitive_view/detail/deref_impl.hpp>
@ -21,7 +22,7 @@ namespace boost { namespace fusion
{ {
struct repetitive_view_iterator_tag; struct repetitive_view_iterator_tag;
template<typename Sequence, typename Pos = template<typename Sequence, typename Pos =
typename result_of::begin<Sequence>::type> typename result_of::begin<Sequence>::type>
struct repetitive_view_iterator struct repetitive_view_iterator
: iterator_base< repetitive_view_iterator<Sequence,Pos> > : iterator_base< repetitive_view_iterator<Sequence,Pos> >

View File

@ -1,7 +1,7 @@
/*============================================================================= /*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman Copyright (c) 2001-2006 Joel de Guzman
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) file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/ ==============================================================================*/
#if !defined(FUSION_REVERSE_VIEW_ITERATOR_07202005_0835) #if !defined(FUSION_REVERSE_VIEW_ITERATOR_07202005_0835)
@ -10,6 +10,7 @@
#include <boost/fusion/support/iterator_base.hpp> #include <boost/fusion/support/iterator_base.hpp>
#include <boost/fusion/support/category_of.hpp> #include <boost/fusion/support/category_of.hpp>
#include <boost/fusion/iterator/mpl/convert_iterator.hpp> #include <boost/fusion/iterator/mpl/convert_iterator.hpp>
#include <boost/fusion/sequence/adapted/mpl/mpl_iterator.hpp>
#include <boost/fusion/sequence/view/reverse_view/detail/deref_impl.hpp> #include <boost/fusion/sequence/view/reverse_view/detail/deref_impl.hpp>
#include <boost/fusion/sequence/view/reverse_view/detail/next_impl.hpp> #include <boost/fusion/sequence/view/reverse_view/detail/next_impl.hpp>
#include <boost/fusion/sequence/view/reverse_view/detail/prior_impl.hpp> #include <boost/fusion/sequence/view/reverse_view/detail/prior_impl.hpp>

View File

@ -1,7 +1,7 @@
/*============================================================================= /*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman Copyright (c) 2001-2006 Joel de Guzman
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) file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/ ==============================================================================*/
#if !defined(FUSION_TRANSFORM_VIEW_ITERATOR_07162005_1033) #if !defined(FUSION_TRANSFORM_VIEW_ITERATOR_07162005_1033)
@ -10,6 +10,7 @@
#include <boost/fusion/support/iterator_base.hpp> #include <boost/fusion/support/iterator_base.hpp>
#include <boost/fusion/support/category_of.hpp> #include <boost/fusion/support/category_of.hpp>
#include <boost/fusion/iterator/mpl/convert_iterator.hpp> #include <boost/fusion/iterator/mpl/convert_iterator.hpp>
#include <boost/fusion/sequence/adapted/mpl/mpl_iterator.hpp>
#include <boost/fusion/sequence/view/transform_view/detail/deref_impl.hpp> #include <boost/fusion/sequence/view/transform_view/detail/deref_impl.hpp>
#include <boost/fusion/sequence/view/transform_view/detail/next_impl.hpp> #include <boost/fusion/sequence/view/transform_view/detail/next_impl.hpp>
#include <boost/fusion/sequence/view/transform_view/detail/prior_impl.hpp> #include <boost/fusion/sequence/view/transform_view/detail/prior_impl.hpp>

View File

@ -2,7 +2,7 @@
Copyright (c) 2001-2006 Joel de Guzman Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2006 Dan Marsden Copyright (c) 2006 Dan Marsden
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) file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/ ==============================================================================*/
#if !defined(FUSION_STRICTEST_TRAVERSAL_20060123_2101) #if !defined(FUSION_STRICTEST_TRAVERSAL_20060123_2101)
@ -16,8 +16,8 @@
#include <boost/type_traits/remove_reference.hpp> #include <boost/type_traits/remove_reference.hpp>
#include <boost/type_traits/is_convertible.hpp> #include <boost/type_traits/is_convertible.hpp>
namespace boost { namespace fusion { namespace boost { namespace fusion
{
struct forward_traversal_tag; struct forward_traversal_tag;
struct bidirectional_traversal_tag; struct bidirectional_traversal_tag;
struct random_access_traversal_tag; struct random_access_traversal_tag;
@ -58,7 +58,7 @@ namespace boost { namespace fusion {
template<typename Sequence> template<typename Sequence>
struct strictest_traversal struct strictest_traversal
: result_of::fold< : result_of::fold<
Sequence, fusion::random_access_traversal_tag, Sequence, fusion::random_access_traversal_tag,
strictest_traversal_impl> strictest_traversal_impl>
{}; {};

View File

@ -2,7 +2,7 @@
Copyright (c) 2001-2006 Joel de Guzman Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2006 Dan Marsden Copyright (c) 2006 Dan Marsden
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) file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/ ==============================================================================*/
#if !defined(FUSION_VALUE_OF_IMPL_20060124_2147) #if !defined(FUSION_VALUE_OF_IMPL_20060124_2147)
@ -17,8 +17,8 @@
#include <boost/mpl/identity.hpp> #include <boost/mpl/identity.hpp>
#include <boost/type_traits/is_same.hpp> #include <boost/type_traits/is_same.hpp>
namespace boost { namespace fusion { namespace boost { namespace fusion
{
struct zip_view_iterator_tag; struct zip_view_iterator_tag;
namespace detail namespace detail

View File

@ -1,7 +1,7 @@
/*============================================================================= /*=============================================================================
Copyright (c) 2007 Tobias Schwinger Copyright (c) 2007 Tobias Schwinger
Use modification and distribution are subject to the Boost Software Use modification and distribution are subject to the Boost Software
License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt). http://www.boost.org/LICENSE_1_0.txt).
==============================================================================*/ ==============================================================================*/
@ -29,7 +29,7 @@ namespace boost { namespace fusion { namespace traits
}; };
} }
// We cannot use fusion::transform_view here as result_of looses cv qualifiers // We cannot use fusion::transform_view here as result_of loses cv qualifiers
// on built in types // on built in types
template <class Sequence> template <class Sequence>
struct deduce_sequence struct deduce_sequence

View File

@ -1,17 +0,0 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
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(FUSION_COMPILER_CONFIG_01052006_1200)
#define FUSION_COMPILER_CONFIG_01052006_1200
#include <boost/config.hpp>
#include <boost/detail/workaround.hpp>
#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310))
#pragma warning(disable : 4512 4244 4100 4305)
#endif
#endif

View File

@ -1,14 +1,12 @@
/*============================================================================= /*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman Copyright (c) 2001-2006 Joel de Guzman
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) file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/ ==============================================================================*/
#if !defined(FUSION_ITERATOR_BASE_05042005_1008) #if !defined(FUSION_ITERATOR_BASE_05042005_1008)
#define FUSION_ITERATOR_BASE_05042005_1008 #define FUSION_ITERATOR_BASE_05042005_1008
#include <boost/fusion/support/detail/compiler_config.hpp>
namespace boost { namespace fusion namespace boost { namespace fusion
{ {
struct iterator_root {}; struct iterator_root {};

View File

@ -2,13 +2,12 @@
Copyright (c) 2005 Joel de Guzman Copyright (c) 2005 Joel de Guzman
Copyright (c) 2006 Tobias Schwinger Copyright (c) 2006 Tobias Schwinger
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) file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/ ==============================================================================*/
#if !defined(FUSION_PAIR_07222005_1203) #if !defined(FUSION_PAIR_07222005_1203)
#define FUSION_PAIR_07222005_1203 #define FUSION_PAIR_07222005_1203
#include <boost/fusion/support/detail/compiler_config.hpp>
#include <boost/fusion/support/detail/access.hpp> #include <boost/fusion/support/detail/access.hpp>
#include <boost/fusion/support/detail/as_fusion_element.hpp> #include <boost/fusion/support/detail/as_fusion_element.hpp>
@ -23,7 +22,7 @@ namespace boost { namespace fusion
pair(typename detail::call_param<Second>::type val) pair(typename detail::call_param<Second>::type val)
: second(val) {} : second(val) {}
template <typename Second2> template <typename Second2>
pair(pair<First, Second2> const& rhs) pair(pair<First, Second2> const& rhs)
: second(rhs.second) {} : second(rhs.second) {}
@ -45,7 +44,7 @@ namespace boost { namespace fusion
template<typename First, typename Second> template<typename First, typename Second>
struct make_pair struct make_pair
{ {
typedef fusion::pair<First, typedef fusion::pair<First,
typename detail::as_fusion_element<Second>::type> type; typename detail::as_fusion_element<Second>::type> type;
}; };
@ -84,16 +83,16 @@ namespace boost { namespace fusion
is >> p.second; is >> p.second;
return is; return is;
} }
template <typename First, typename SecondL, typename SecondR> template <typename First, typename SecondL, typename SecondR>
inline bool inline bool
operator==(pair<First, SecondL> const& l, pair<First, SecondR> const& r) operator==(pair<First, SecondL> const& l, pair<First, SecondR> const& r)
{ {
return l.second == r.second; return l.second == r.second;
} }
template <typename First, typename SecondL, typename SecondR> template <typename First, typename SecondL, typename SecondR>
inline bool inline bool
operator!=(pair<First, SecondL> const& l, pair<First, SecondR> const& r) operator!=(pair<First, SecondL> const& l, pair<First, SecondR> const& r)
{ {
return l.second != r.second; return l.second != r.second;

View File

@ -2,13 +2,12 @@
Copyright (c) 2001-2006 Joel de Guzman Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2007 Tobias Schwinger Copyright (c) 2007 Tobias Schwinger
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) file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/ ==============================================================================*/
#if !defined(FUSION_SEQUENCE_BASE_04182005_0737) #if !defined(FUSION_SEQUENCE_BASE_04182005_0737)
#define FUSION_SEQUENCE_BASE_04182005_0737 #define FUSION_SEQUENCE_BASE_04182005_0737
#include <boost/fusion/support/detail/compiler_config.hpp>
#include <boost/mpl/begin_end_fwd.hpp> #include <boost/mpl/begin_end_fwd.hpp>
namespace boost { namespace fusion namespace boost { namespace fusion
@ -37,7 +36,7 @@ namespace boost { namespace fusion
namespace boost { namespace mpl namespace boost { namespace mpl
{ {
// Deliberately break mpl::begin, so it doesn't lie that a Fusion sequence // Deliberately break mpl::begin, so it doesn't lie that a Fusion sequence
// is not an MPL sequence by returning mpl::void_. // is not an MPL sequence by returning mpl::void_.
// In other words: Fusion Sequences are always MPL Sequences, but they can // In other words: Fusion Sequences are always MPL Sequences, but they can
// be incompletely defined. // be incompletely defined.
template<> struct begin_impl< boost::fusion::fusion_sequence_tag >; template<> struct begin_impl< boost::fusion::fusion_sequence_tag >;

View File

@ -1,17 +1,17 @@
/*============================================================================= /*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman Copyright (c) 2001-2006 Joel de Guzman
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) file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/ ==============================================================================*/
#if !defined(FUSION_TAG_OF_09232005_0845) #if !defined(FUSION_TAG_OF_09232005_0845)
#define FUSION_TAG_OF_09232005_0845 #define FUSION_TAG_OF_09232005_0845
#include <boost/utility/enable_if.hpp>
#include <boost/type_traits/remove_const.hpp> #include <boost/type_traits/remove_const.hpp>
#include <boost/fusion/support/tag_of_fwd.hpp> #include <boost/fusion/support/tag_of_fwd.hpp>
#include <boost/fusion/support/detail/is_mpl_sequence.hpp> #include <boost/fusion/support/detail/is_mpl_sequence.hpp>
#include <boost/mpl/has_xxx.hpp> #include <boost/mpl/has_xxx.hpp>
#include <boost/utility/enable_if.hpp>
#include <boost/mpl/identity.hpp> #include <boost/mpl/identity.hpp>
#include <boost/mpl/assert.hpp> #include <boost/mpl/assert.hpp>
#include <boost/mpl/bool.hpp> #include <boost/mpl/bool.hpp>
@ -26,13 +26,13 @@ namespace boost
namespace tuples namespace tuples
{ {
struct null_type; struct null_type;
template < template <
class T0, class T1, class T2, class T3, class T4, class T0, class T1, class T2, class T3, class T4,
class T5, class T6, class T7, class T8, class T9 class T5, class T6, class T7, class T8, class T9
> >
class tuple; class tuple;
template <class Head, class Tail> template <class Head, class Tail>
struct cons; struct cons;
} }
@ -53,7 +53,7 @@ namespace boost { namespace fusion
{}; {};
template < template <
class T0, class T1, class T2, class T3, class T4, class T0, class T1, class T2, class T3, class T4,
class T5, class T6, class T7, class T8, class T9 class T5, class T6, class T7, class T8, class T9
> >
struct is_specialized<tuples::tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> > struct is_specialized<tuples::tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> >

View File

@ -2,14 +2,14 @@
Copyright (c) 2001-2006 Joel de Guzman Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2005-2006 Dan Marsden Copyright (c) 2005-2006 Dan Marsden
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) file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/ ==============================================================================*/
#if !defined(BOOST_FUSION_TAG_OF_FWD_31122005_1445) #if !defined(BOOST_FUSION_TAG_OF_FWD_31122005_1445)
#define BOOST_FUSION_TAG_OF_FWD_31122005_1445 #define BOOST_FUSION_TAG_OF_FWD_31122005_1445
namespace boost { namespace fusion { namespace boost { namespace fusion
{
namespace traits namespace traits
{ {
template<typename T, typename Active = void> template<typename T, typename Active = void>

View File

@ -1,7 +1,14 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
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_SUPPORT_VOID_20070706_2125) #if !defined(BOOST_FUSION_SUPPORT_VOID_20070706_2125)
#define BOOST_FUSION_SUPPORT_VOID_20070706_2125 #define BOOST_FUSION_SUPPORT_VOID_20070706_2125
namespace boost { namespace fusion { namespace boost { namespace fusion
{
struct void_ {}; struct void_ {};
}} }}