[Boostheaders-commits] r35 - in pkg/BH/inst/include/boost/fusion: adapted/mpl adapted/struct algorithm/transformation container/generation container/list container/vector iterator/detail iterator/mpl sequence/comparison sequence/intrinsic sequence/io support/detail tuple/detail view/iterator_range view/joint_view view/single_view
noreply at r-forge.r-project.org
noreply at r-forge.r-project.org
Sat May 4 03:02:12 CEST 2013
Author: edd
Date: 2013-05-04 03:02:11 +0200 (Sat, 04 May 2013)
New Revision: 35
Added:
pkg/BH/inst/include/boost/fusion/adapted/mpl/detail/
pkg/BH/inst/include/boost/fusion/adapted/mpl/mpl_iterator.hpp
pkg/BH/inst/include/boost/fusion/adapted/struct/adapt_struct.hpp
pkg/BH/inst/include/boost/fusion/adapted/struct/detail/
pkg/BH/inst/include/boost/fusion/algorithm/transformation/push_back.hpp
pkg/BH/inst/include/boost/fusion/algorithm/transformation/push_front.hpp
pkg/BH/inst/include/boost/fusion/container/generation/ignore.hpp
pkg/BH/inst/include/boost/fusion/container/list/cons.hpp
pkg/BH/inst/include/boost/fusion/container/list/cons_fwd.hpp
pkg/BH/inst/include/boost/fusion/container/list/cons_iterator.hpp
pkg/BH/inst/include/boost/fusion/container/list/detail/
pkg/BH/inst/include/boost/fusion/container/list/limits.hpp
pkg/BH/inst/include/boost/fusion/container/list/list_fwd.hpp
pkg/BH/inst/include/boost/fusion/container/vector/detail/
pkg/BH/inst/include/boost/fusion/container/vector/limits.hpp
pkg/BH/inst/include/boost/fusion/container/vector/vector.hpp
pkg/BH/inst/include/boost/fusion/container/vector/vector10.hpp
pkg/BH/inst/include/boost/fusion/container/vector/vector10_fwd.hpp
pkg/BH/inst/include/boost/fusion/container/vector/vector20.hpp
pkg/BH/inst/include/boost/fusion/container/vector/vector20_fwd.hpp
pkg/BH/inst/include/boost/fusion/container/vector/vector30.hpp
pkg/BH/inst/include/boost/fusion/container/vector/vector30_fwd.hpp
pkg/BH/inst/include/boost/fusion/container/vector/vector40.hpp
pkg/BH/inst/include/boost/fusion/container/vector/vector40_fwd.hpp
pkg/BH/inst/include/boost/fusion/container/vector/vector50.hpp
pkg/BH/inst/include/boost/fusion/container/vector/vector50_fwd.hpp
pkg/BH/inst/include/boost/fusion/container/vector/vector_fwd.hpp
pkg/BH/inst/include/boost/fusion/container/vector/vector_iterator.hpp
pkg/BH/inst/include/boost/fusion/iterator/detail/adapt_deref_traits.hpp
pkg/BH/inst/include/boost/fusion/iterator/detail/adapt_value_traits.hpp
pkg/BH/inst/include/boost/fusion/iterator/detail/advance.hpp
pkg/BH/inst/include/boost/fusion/iterator/detail/distance.hpp
pkg/BH/inst/include/boost/fusion/iterator/detail/segment_sequence.hpp
pkg/BH/inst/include/boost/fusion/iterator/detail/segmented_equal_to.hpp
pkg/BH/inst/include/boost/fusion/iterator/detail/segmented_iterator.hpp
pkg/BH/inst/include/boost/fusion/iterator/detail/segmented_next_impl.hpp
pkg/BH/inst/include/boost/fusion/iterator/mpl/convert_iterator.hpp
pkg/BH/inst/include/boost/fusion/iterator/mpl/fusion_iterator.hpp
pkg/BH/inst/include/boost/fusion/sequence/comparison/detail/
pkg/BH/inst/include/boost/fusion/sequence/comparison/enable_comparison.hpp
pkg/BH/inst/include/boost/fusion/sequence/comparison/equal_to.hpp
pkg/BH/inst/include/boost/fusion/sequence/comparison/greater.hpp
pkg/BH/inst/include/boost/fusion/sequence/comparison/greater_equal.hpp
pkg/BH/inst/include/boost/fusion/sequence/comparison/less.hpp
pkg/BH/inst/include/boost/fusion/sequence/comparison/less_equal.hpp
pkg/BH/inst/include/boost/fusion/sequence/comparison/not_equal_to.hpp
pkg/BH/inst/include/boost/fusion/sequence/intrinsic/at.hpp
pkg/BH/inst/include/boost/fusion/sequence/intrinsic/begin.hpp
pkg/BH/inst/include/boost/fusion/sequence/intrinsic/detail/
pkg/BH/inst/include/boost/fusion/sequence/intrinsic/empty.hpp
pkg/BH/inst/include/boost/fusion/sequence/intrinsic/end.hpp
pkg/BH/inst/include/boost/fusion/sequence/intrinsic/segments.hpp
pkg/BH/inst/include/boost/fusion/sequence/intrinsic/size.hpp
pkg/BH/inst/include/boost/fusion/sequence/intrinsic/value_at.hpp
pkg/BH/inst/include/boost/fusion/sequence/io/detail/
pkg/BH/inst/include/boost/fusion/sequence/io/in.hpp
pkg/BH/inst/include/boost/fusion/sequence/io/out.hpp
pkg/BH/inst/include/boost/fusion/support/detail/access.hpp
pkg/BH/inst/include/boost/fusion/support/detail/as_fusion_element.hpp
pkg/BH/inst/include/boost/fusion/support/detail/category_of.hpp
pkg/BH/inst/include/boost/fusion/support/detail/is_mpl_sequence.hpp
pkg/BH/inst/include/boost/fusion/support/detail/is_view.hpp
pkg/BH/inst/include/boost/fusion/support/detail/mpl_iterator_category.hpp
pkg/BH/inst/include/boost/fusion/support/detail/pp_round.hpp
pkg/BH/inst/include/boost/fusion/support/detail/segmented_fold_until_impl.hpp
pkg/BH/inst/include/boost/fusion/tuple/detail/preprocessed/
pkg/BH/inst/include/boost/fusion/tuple/detail/tuple_expand.hpp
pkg/BH/inst/include/boost/fusion/view/iterator_range/detail/
pkg/BH/inst/include/boost/fusion/view/iterator_range/iterator_range.hpp
pkg/BH/inst/include/boost/fusion/view/joint_view/detail/
pkg/BH/inst/include/boost/fusion/view/joint_view/joint_view.hpp
pkg/BH/inst/include/boost/fusion/view/joint_view/joint_view_fwd.hpp
pkg/BH/inst/include/boost/fusion/view/joint_view/joint_view_iterator.hpp
pkg/BH/inst/include/boost/fusion/view/single_view/detail/
pkg/BH/inst/include/boost/fusion/view/single_view/single_view.hpp
pkg/BH/inst/include/boost/fusion/view/single_view/single_view_iterator.hpp
Log:
steps towards BH 1.51.0-1 with foreach and math distributions
Added: pkg/BH/inst/include/boost/fusion/adapted/mpl/mpl_iterator.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/adapted/mpl/mpl_iterator.hpp (rev 0)
+++ pkg/BH/inst/include/boost/fusion/adapted/mpl/mpl_iterator.hpp 2013-05-04 01:02:11 UTC (rev 35)
@@ -0,0 +1,113 @@
+/*=============================================================================
+ Copyright (c) 2001-2011 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_MPL_ITERATOR_05052005_0731)
+#define FUSION_MPL_ITERATOR_05052005_0731
+
+#include <boost/fusion/support/detail/mpl_iterator_category.hpp>
+#include <boost/fusion/iterator/iterator_facade.hpp>
+#include <boost/type_traits/remove_const.hpp>
+#include <boost/mpl/deref.hpp>
+#include <boost/mpl/next.hpp>
+#include <boost/mpl/prior.hpp>
+#include <boost/mpl/advance.hpp>
+#include <boost/mpl/distance.hpp>
+
+namespace boost { namespace fusion
+{
+ template <typename Iterator_>
+ struct mpl_iterator
+ : iterator_facade<
+ mpl_iterator<Iterator_>
+ , typename detail::mpl_iterator_category<typename Iterator_::category>::type
+ >
+ {
+ typedef typename remove_const<Iterator_>::type iterator_type;
+
+ template <typename Iterator>
+ struct value_of : mpl::deref<typename Iterator::iterator_type> {};
+
+ template <typename Iterator>
+ struct deref
+ {
+ typedef typename mpl::deref<
+ typename Iterator::iterator_type>::type
+ type;
+
+ static type
+ call(Iterator)
+ {
+ return type();
+ }
+ };
+
+ template <typename Iterator>
+ struct next
+ {
+ typedef mpl_iterator<
+ typename mpl::next<typename Iterator::iterator_type>::type>
+ type;
+
+ static type
+ call(Iterator)
+ {
+ return type();
+ }
+ };
+
+ template <typename Iterator>
+ struct prior
+ {
+ typedef mpl_iterator<
+ typename mpl::prior<typename Iterator::iterator_type>::type>
+ type;
+
+ static type
+ call(Iterator)
+ {
+ return type();
+ }
+ };
+
+ template <typename Iterator, typename N>
+ struct advance
+ {
+ typedef mpl_iterator<
+ typename mpl::advance<typename Iterator::iterator_type, N>::type>
+ type;
+
+ static type
+ call(Iterator const& /*i*/)
+ {
+ return type();
+ }
+ };
+
+ template <typename I1, typename I2>
+ struct distance :
+ mpl::distance<
+ typename I1::iterator_type
+ , typename I2::iterator_type>
+ {
+ typedef typename
+ mpl::distance<
+ typename I1::iterator_type
+ , typename I2::iterator_type
+ >::type
+ type;
+
+ static type
+ call(I1 const&, I2 const&)
+ {
+ return type();
+ }
+ };
+ };
+}}
+
+#endif
+
+
Added: pkg/BH/inst/include/boost/fusion/adapted/struct/adapt_struct.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/adapted/struct/adapt_struct.hpp (rev 0)
+++ pkg/BH/inst/include/boost/fusion/adapted/struct/adapt_struct.hpp 2013-05-04 01:02:11 UTC (rev 35)
@@ -0,0 +1,71 @@
+/*=============================================================================
+ Copyright (c) 2001-2007 Joel de Guzman
+ Copyright (c) 2009-2011 Christopher Schmidt
+
+ 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)
+==============================================================================*/
+
+#ifndef BOOST_FUSION_ADAPTED_STRUCT_ADAPT_STRUCT_HPP
+#define BOOST_FUSION_ADAPTED_STRUCT_ADAPT_STRUCT_HPP
+
+#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/empty.hpp>
+#include <boost/type_traits/add_reference.hpp>
+#include <boost/type_traits/is_const.hpp>
+#include <boost/type_traits/add_const.hpp>
+#include <boost/type_traits/remove_const.hpp>
+
+#include <boost/fusion/adapted/struct/detail/extension.hpp>
+#include <boost/fusion/adapted/struct/detail/adapt_base.hpp>
+#include <boost/fusion/adapted/struct/detail/at_impl.hpp>
+#include <boost/fusion/adapted/struct/detail/is_view_impl.hpp>
+#include <boost/fusion/adapted/struct/detail/is_sequence_impl.hpp>
+#include <boost/fusion/adapted/struct/detail/value_at_impl.hpp>
+#include <boost/fusion/adapted/struct/detail/category_of_impl.hpp>
+#include <boost/fusion/adapted/struct/detail/size_impl.hpp>
+#include <boost/fusion/adapted/struct/detail/begin_impl.hpp>
+#include <boost/fusion/adapted/struct/detail/end_impl.hpp>
+#include <boost/fusion/adapted/struct/detail/value_of_impl.hpp>
+#include <boost/fusion/adapted/struct/detail/deref_impl.hpp>
+
+#define BOOST_FUSION_ADAPT_STRUCT_FILLER_0(X, Y) \
+ ((X, Y)) BOOST_FUSION_ADAPT_STRUCT_FILLER_1
+#define BOOST_FUSION_ADAPT_STRUCT_FILLER_1(X, Y) \
+ ((X, Y)) BOOST_FUSION_ADAPT_STRUCT_FILLER_0
+#define BOOST_FUSION_ADAPT_STRUCT_FILLER_0_END
+#define BOOST_FUSION_ADAPT_STRUCT_FILLER_1_END
+
+#define BOOST_FUSION_ADAPT_STRUCT_C(TEMPLATE_PARAMS_SEQ, NAME_SEQ, I, ATTRIBUTE)\
+ BOOST_FUSION_ADAPT_STRUCT_C_BASE( \
+ TEMPLATE_PARAMS_SEQ,NAME_SEQ,I,BOOST_PP_EMPTY,ATTRIBUTE,2)
+
+#define BOOST_FUSION_ADAPT_TPL_STRUCT(TEMPLATE_PARAMS_SEQ,NAME_SEQ, ATTRIBUTES) \
+ BOOST_FUSION_ADAPT_STRUCT_BASE( \
+ (1)TEMPLATE_PARAMS_SEQ, \
+ (1)NAME_SEQ, \
+ struct_tag, \
+ 0, \
+ ((0,0)) BOOST_PP_CAT( \
+ BOOST_FUSION_ADAPT_STRUCT_FILLER_0 ATTRIBUTES,_END), \
+ BOOST_FUSION_ADAPT_STRUCT_C)
+
+#define BOOST_FUSION_ADAPT_STRUCT(NAME, ATTRIBUTES) \
+ BOOST_FUSION_ADAPT_STRUCT_BASE( \
+ (0), \
+ (0)(NAME), \
+ struct_tag, \
+ 0, \
+ BOOST_PP_CAT(BOOST_FUSION_ADAPT_STRUCT_FILLER_0(0,0)ATTRIBUTES,_END), \
+ BOOST_FUSION_ADAPT_STRUCT_C)
+
+#define BOOST_FUSION_ADAPT_STRUCT_AS_VIEW(NAME, ATTRIBUTES) \
+ BOOST_FUSION_ADAPT_STRUCT_BASE( \
+ (0), \
+ (0)(NAME), \
+ struct_tag, \
+ 1, \
+ BOOST_PP_CAT(BOOST_FUSION_ADAPT_STRUCT_FILLER_0(0,0)ATTRIBUTES,_END), \
+ BOOST_FUSION_ADAPT_STRUCT_C)
+
+#endif
Added: pkg/BH/inst/include/boost/fusion/algorithm/transformation/push_back.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/algorithm/transformation/push_back.hpp (rev 0)
+++ pkg/BH/inst/include/boost/fusion/algorithm/transformation/push_back.hpp 2013-05-04 01:02:11 UTC (rev 35)
@@ -0,0 +1,46 @@
+/*=============================================================================
+ Copyright (c) 2001-2011 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_PUSH_BACK_07162005_0235)
+#define FUSION_PUSH_BACK_07162005_0235
+
+#include <boost/fusion/support/detail/as_fusion_element.hpp>
+#include <boost/fusion/view/joint_view/joint_view.hpp>
+#include <boost/fusion/view/single_view/single_view.hpp>
+#include <boost/fusion/support/is_sequence.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace boost { namespace fusion
+{
+ namespace result_of
+ {
+ template <typename Sequence, typename T>
+ struct push_back
+ {
+ typedef fusion::single_view<typename detail::as_fusion_element<T>::type> single_view;
+ typedef joint_view<Sequence, single_view const> type;
+ };
+ }
+
+ template <typename Sequence, typename T>
+ inline
+ typename
+ lazy_enable_if<
+ traits::is_sequence<Sequence>
+ , result_of::push_back<Sequence const, T>
+ >::type
+ push_back(Sequence const& seq, T const& x)
+ {
+ typedef typename result_of::push_back<Sequence const, T> push_back;
+ typedef typename push_back::single_view single_view;
+ typedef typename push_back::type result;
+ single_view x_(x);
+ return result(seq, x_);
+ }
+}}
+
+#endif
+
Added: pkg/BH/inst/include/boost/fusion/algorithm/transformation/push_front.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/algorithm/transformation/push_front.hpp (rev 0)
+++ pkg/BH/inst/include/boost/fusion/algorithm/transformation/push_front.hpp 2013-05-04 01:02:11 UTC (rev 35)
@@ -0,0 +1,46 @@
+/*=============================================================================
+ Copyright (c) 2001-2011 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_PUSH_FRONT_07162005_0749)
+#define FUSION_PUSH_FRONT_07162005_0749
+
+#include <boost/fusion/support/detail/as_fusion_element.hpp>
+#include <boost/fusion/view/joint_view/joint_view.hpp>
+#include <boost/fusion/view/single_view/single_view.hpp>
+#include <boost/fusion/support/is_sequence.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace boost { namespace fusion
+{
+ namespace result_of
+ {
+ template <typename Sequence, typename T>
+ struct push_front
+ {
+ typedef fusion::single_view<typename detail::as_fusion_element<T>::type> single_view;
+ typedef joint_view<single_view const, Sequence> type;
+ };
+ }
+
+ template <typename Sequence, typename T>
+ inline
+ typename
+ lazy_enable_if<
+ traits::is_sequence<Sequence>
+ , result_of::push_front<Sequence const, T>
+ >::type
+ push_front(Sequence const& seq, T const& x)
+ {
+ typedef typename result_of::push_front<Sequence const, T> push_front;
+ typedef typename push_front::single_view single_view;
+ typedef typename push_front::type result;
+ single_view x_(x);
+ return result(x_, seq);
+ }
+}}
+
+#endif
+
Added: pkg/BH/inst/include/boost/fusion/container/generation/ignore.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/container/generation/ignore.hpp (rev 0)
+++ pkg/BH/inst/include/boost/fusion/container/generation/ignore.hpp 2013-05-04 01:02:11 UTC (rev 35)
@@ -0,0 +1,32 @@
+/*=============================================================================
+ Copyright (c) 2001 Doug Gregor
+ Copyright (c) 1999-2003 Jaakko Jarvi
+ Copyright (c) 2001-2011 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_IGNORE_07192005_0329)
+#define FUSION_IGNORE_07192005_0329
+
+namespace boost { namespace fusion
+{
+ // Swallows any assignment (by Doug Gregor)
+ namespace detail
+ {
+ struct swallow_assign
+ {
+ template<typename T>
+ swallow_assign const&
+ operator=(const T&) const
+ {
+ return *this;
+ }
+ };
+ }
+
+ // "ignore" allows tuple positions to be ignored when using "tie".
+ detail::swallow_assign const ignore = detail::swallow_assign();
+}}
+
+#endif
Added: pkg/BH/inst/include/boost/fusion/container/list/cons.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/container/list/cons.hpp (rev 0)
+++ pkg/BH/inst/include/boost/fusion/container/list/cons.hpp 2013-05-04 01:02:11 UTC (rev 35)
@@ -0,0 +1,144 @@
+/*=============================================================================
+ Copyright (c) 2001-2011 Joel de Guzman
+ Copyright (c) 2005 Eric Niebler
+
+ 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_CONS_07172005_0843)
+#define FUSION_CONS_07172005_0843
+
+#include <boost/fusion/container/list/cons_fwd.hpp>
+#include <boost/fusion/support/detail/access.hpp>
+#include <boost/fusion/sequence/intrinsic/begin.hpp>
+#include <boost/fusion/sequence/intrinsic/end.hpp>
+#include <boost/fusion/iterator/next.hpp>
+#include <boost/fusion/iterator/deref.hpp>
+#include <boost/fusion/container/list/cons_iterator.hpp>
+#include <boost/fusion/container/list/detail/begin_impl.hpp>
+#include <boost/fusion/container/list/detail/end_impl.hpp>
+#include <boost/fusion/container/list/detail/at_impl.hpp>
+#include <boost/fusion/container/list/detail/value_at_impl.hpp>
+#include <boost/fusion/container/list/detail/empty_impl.hpp>
+#include <boost/type_traits/is_convertible.hpp>
+#include <boost/utility/enable_if.hpp>
+#include <boost/fusion/support/sequence_base.hpp>
+#include <boost/mpl/int.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/or.hpp>
+
+namespace boost { namespace fusion
+{
+ struct void_;
+ struct cons_tag;
+ struct forward_traversal_tag;
+ struct fusion_sequence_tag;
+
+ struct nil : sequence_base<nil>
+ {
+ typedef mpl::int_<0> size;
+ typedef cons_tag fusion_tag;
+ typedef fusion_sequence_tag tag; // this gets picked up by MPL
+ typedef mpl::false_ is_view;
+ typedef forward_traversal_tag category;
+ typedef void_ car_type;
+ typedef void_ cdr_type;
+
+ nil() {}
+
+ template <typename Iterator>
+ nil(Iterator const& /*iter*/, mpl::true_ /*this_is_an_iterator*/)
+ {}
+
+ template <typename Iterator>
+ void assign_from_iter(Iterator const& /*iter*/)
+ {
+ }
+ };
+
+ template <typename Car, typename Cdr /*= nil*/>
+ struct cons : sequence_base<cons<Car, Cdr> >
+ {
+ typedef mpl::int_<Cdr::size::value+1> size;
+ typedef cons_tag fusion_tag;
+ typedef fusion_sequence_tag tag; // this gets picked up by MPL
+ typedef mpl::false_ is_view;
+ typedef forward_traversal_tag category;
+ typedef Car car_type;
+ typedef Cdr cdr_type;
+
+ cons()
+ : car(), cdr() {}
+
+ explicit cons(typename detail::call_param<Car>::type in_car)
+ : car(in_car), cdr() {}
+
+ cons(
+ typename detail::call_param<Car>::type in_car
+ , typename detail::call_param<Cdr>::type in_cdr)
+ : car(in_car), cdr(in_cdr) {}
+
+ template <typename Car2, typename Cdr2>
+ cons(cons<Car2, Cdr2> const& rhs)
+ : car(rhs.car), cdr(rhs.cdr) {}
+
+ cons(cons const& rhs)
+ : car(rhs.car), cdr(rhs.cdr) {}
+
+ template <typename Sequence>
+ cons(
+ Sequence const& seq
+ , typename boost::disable_if<
+ mpl::or_<
+ is_convertible<Sequence, cons> // use copy ctor instead
+ , is_convertible<Sequence, Car> // use copy to car instead
+ >
+ >::type* /*dummy*/ = 0
+ )
+ : car(*fusion::begin(seq))
+ , cdr(fusion::next(fusion::begin(seq)), mpl::true_()) {}
+
+ template <typename Iterator>
+ cons(Iterator const& iter, mpl::true_ /*this_is_an_iterator*/)
+ : car(*iter)
+ , cdr(fusion::next(iter), mpl::true_()) {}
+
+ template <typename Car2, typename Cdr2>
+ cons& operator=(cons<Car2, Cdr2> const& rhs)
+ {
+ car = rhs.car;
+ cdr = rhs.cdr;
+ return *this;
+ }
+
+ cons& operator=(cons const& rhs)
+ {
+ car = rhs.car;
+ cdr = rhs.cdr;
+ return *this;
+ }
+
+ template <typename Sequence>
+ typename boost::disable_if<is_convertible<Sequence, Car>, cons&>::type
+ operator=(Sequence const& seq)
+ {
+ typedef typename result_of::begin<Sequence const>::type Iterator;
+ Iterator iter = fusion::begin(seq);
+ this->assign_from_iter(iter);
+ return *this;
+ }
+
+ template <typename Iterator>
+ void assign_from_iter(Iterator const& iter)
+ {
+ car = *iter;
+ cdr.assign_from_iter(fusion::next(iter));
+ }
+
+ car_type car;
+ cdr_type cdr;
+ };
+}}
+
+#endif
+
Added: pkg/BH/inst/include/boost/fusion/container/list/cons_fwd.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/container/list/cons_fwd.hpp (rev 0)
+++ pkg/BH/inst/include/boost/fusion/container/list/cons_fwd.hpp 2013-05-04 01:02:11 UTC (rev 35)
@@ -0,0 +1,20 @@
+/*=============================================================================
+ Copyright (c) 2001-2011 Joel de Guzman
+ Copyright (c) 2005 Eric Niebler
+
+ 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_CONS_FWD_HPP_INCLUDED)
+#define BOOST_FUSION_CONS_FWD_HPP_INCLUDED
+
+namespace boost { namespace fusion
+{
+ struct nil;
+
+ template <typename Car, typename Cdr = nil>
+ struct cons;
+}}
+
+#endif
+
Added: pkg/BH/inst/include/boost/fusion/container/list/cons_iterator.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/container/list/cons_iterator.hpp (rev 0)
+++ pkg/BH/inst/include/boost/fusion/container/list/cons_iterator.hpp 2013-05-04 01:02:11 UTC (rev 35)
@@ -0,0 +1,89 @@
+/*=============================================================================
+ Copyright (c) 2001-2011 Joel de Guzman
+ Copyright (c) 2005 Eric Niebler
+
+ 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_CONS_ITERATOR_07172005_0849)
+#define FUSION_CONS_ITERATOR_07172005_0849
+
+#include <boost/type_traits/add_const.hpp>
+#include <boost/fusion/support/iterator_base.hpp>
+#include <boost/fusion/container/list/detail/deref_impl.hpp>
+#include <boost/fusion/container/list/detail/next_impl.hpp>
+#include <boost/fusion/container/list/detail/value_of_impl.hpp>
+#include <boost/fusion/container/list/detail/equal_to_impl.hpp>
+#include <boost/fusion/container/list/list_fwd.hpp>
+
+namespace boost { namespace fusion
+{
+ struct nil;
+ struct cons_iterator_tag;
+ struct forward_traversal_tag;
+
+ template <typename Cons>
+ struct cons_iterator_identity;
+
+ template <typename Cons = nil>
+ struct cons_iterator : iterator_base<cons_iterator<Cons> >
+ {
+ typedef cons_iterator_tag fusion_tag;
+ typedef forward_traversal_tag category;
+ typedef Cons cons_type;
+ typedef cons_iterator_identity<
+ typename add_const<Cons>::type>
+ identity;
+
+ explicit cons_iterator(cons_type& in_cons)
+ : cons(in_cons) {}
+
+ cons_type& cons;
+
+ private:
+ // silence MSVC warning C4512: assignment operator could not be generated
+ cons_iterator& operator= (cons_iterator const&);
+ };
+
+ struct nil_iterator : iterator_base<nil_iterator>
+ {
+ typedef forward_traversal_tag category;
+ typedef cons_iterator_tag fusion_tag;
+ typedef nil cons_type;
+ typedef cons_iterator_identity<
+ add_const<nil>::type>
+ identity;
+ nil_iterator() {}
+ explicit nil_iterator(nil const&) {}
+ };
+
+ template <>
+ struct cons_iterator<nil> : nil_iterator
+ {
+ cons_iterator() {}
+ explicit cons_iterator(nil const&) {}
+ };
+
+ template <>
+ struct cons_iterator<nil const> : nil_iterator
+ {
+ cons_iterator() {}
+ explicit cons_iterator(nil const&) {}
+ };
+
+ template <>
+ struct cons_iterator<list<> > : nil_iterator
+ {
+ cons_iterator() {}
+ explicit cons_iterator(nil const&) {}
+ };
+
+ template <>
+ struct cons_iterator<list<> const> : nil_iterator
+ {
+ cons_iterator() {}
+ explicit cons_iterator(nil const&) {}
+ };
+}}
+
+#endif
Added: pkg/BH/inst/include/boost/fusion/container/list/limits.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/container/list/limits.hpp (rev 0)
+++ pkg/BH/inst/include/boost/fusion/container/list/limits.hpp 2013-05-04 01:02:11 UTC (rev 35)
@@ -0,0 +1,21 @@
+/*=============================================================================
+ Copyright (c) 2001-2011 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_LIST_LIMITS_07172005_0112)
+#define FUSION_LIST_LIMITS_07172005_0112
+
+#if !defined(FUSION_MAX_LIST_SIZE)
+# define FUSION_MAX_LIST_SIZE 10
+#else
+# if FUSION_MAX_LIST_SIZE < 3
+# undef FUSION_MAX_LIST_SIZE
+# define FUSION_MAX_LIST_SIZE 10
+# endif
+#endif
+
+#define FUSION_MAX_LIST_SIZE_STR BOOST_PP_STRINGIZE(BOOST_FUSION_PP_ROUND_UP(FUSION_MAX_LIST_SIZE))
+
+#endif
Added: pkg/BH/inst/include/boost/fusion/container/list/list_fwd.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/container/list/list_fwd.hpp (rev 0)
+++ pkg/BH/inst/include/boost/fusion/container/list/list_fwd.hpp 2013-05-04 01:02:11 UTC (rev 35)
@@ -0,0 +1,50 @@
+/*=============================================================================
+ Copyright (c) 2001-2011 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_LIST_FORWARD_07172005_0224)
+#define FUSION_LIST_FORWARD_07172005_0224
+
+#include <boost/fusion/container/list/limits.hpp>
+#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
+
+#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
+#include <boost/fusion/container/list/detail/preprocessed/list_fwd.hpp>
+#else
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/list" FUSION_MAX_LIST_SIZE_STR "_fwd.hpp")
+#endif
+
+/*=============================================================================
+ Copyright (c) 2001-2011 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)
+
+ This is an auto-generated file. Do not edit!
+==============================================================================*/
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
+
+namespace boost { namespace fusion
+{
+ struct void_;
+
+ template <
+ BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
+ FUSION_MAX_LIST_SIZE, typename T, void_)
+ >
+ struct list;
+}}
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(output: null)
+#endif
+
+#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
+
+#endif
Added: pkg/BH/inst/include/boost/fusion/container/vector/limits.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/container/vector/limits.hpp (rev 0)
+++ pkg/BH/inst/include/boost/fusion/container/vector/limits.hpp 2013-05-04 01:02:11 UTC (rev 35)
@@ -0,0 +1,23 @@
+/*=============================================================================
+ Copyright (c) 2001-2011 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_VECTOR_LIMITS_07072005_1246)
+#define FUSION_VECTOR_LIMITS_07072005_1246
+
+#include <boost/fusion/support/detail/pp_round.hpp>
+
+#if !defined(FUSION_MAX_VECTOR_SIZE)
+# define FUSION_MAX_VECTOR_SIZE 10
+#else
+# if FUSION_MAX_VECTOR_SIZE < 3
+# undef FUSION_MAX_VECTOR_SIZE
+# define FUSION_MAX_VECTOR_SIZE 10
+# endif
+#endif
+
+#define FUSION_MAX_VECTOR_SIZE_STR BOOST_PP_STRINGIZE(BOOST_FUSION_PP_ROUND_UP(FUSION_MAX_VECTOR_SIZE))
+
+#endif
Added: pkg/BH/inst/include/boost/fusion/container/vector/vector.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/container/vector/vector.hpp (rev 0)
+++ pkg/BH/inst/include/boost/fusion/container/vector/vector.hpp 2013-05-04 01:02:11 UTC (rev 35)
@@ -0,0 +1,191 @@
+/*=============================================================================
+ Copyright (c) 2001-2011 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_VECTOR_07072005_1244)
+#define FUSION_VECTOR_07072005_1244
+
+#include <boost/fusion/container/vector/vector_fwd.hpp>
+#include <boost/fusion/container/vector/detail/vector_n_chooser.hpp>
+#include <boost/fusion/sequence/intrinsic/begin.hpp>
+#include <boost/mpl/at.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/type_traits/add_reference.hpp>
+#include <boost/type_traits/add_const.hpp>
+#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
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/vvector" FUSION_MAX_VECTOR_SIZE_STR ".hpp")
+#endif
+
+/*=============================================================================
+ Copyright (c) 2001-2011 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)
+
+ This is an auto-generated file. Do not edit!
+==============================================================================*/
+
+#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
+#pragma wave option(preserve: 1)
+#endif
+
+namespace boost { namespace fusion
+{
+ struct void_;
+ struct fusion_sequence_tag;
+
+ template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, typename T)>
+ struct vector
+ : sequence_base<vector<BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, T)> >
+ {
+ private:
+
+ typedef typename detail::vector_n_chooser<
+ BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, T)>::type
+ vector_n;
+
+ template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, typename U)>
+ friend struct vector;
+
+ public:
+
+ typedef typename vector_n::types types;
+ typedef typename vector_n::fusion_tag fusion_tag;
+ typedef typename vector_n::tag tag;
+ typedef typename vector_n::size size;
+ typedef typename vector_n::category category;
+ typedef typename vector_n::is_view is_view;
+
+ vector()
+ : vec() {}
+
+ template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, typename U)>
+ vector(vector<BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, U)> const& rhs)
+ : vec(rhs.vec) {}
+
+ vector(vector const& rhs)
+ : vec(rhs.vec) {}
+
+ template <typename Sequence>
+ vector(Sequence const& rhs)
+ : vec(BOOST_FUSION_VECTOR_COPY_INIT()) {}
+
+ // Expand a couple of forwarding constructors for arguments
+ // of type (T0), (T0, T1), (T0, T1, T2) etc. Example:
+ //
+ // vector(
+ // typename detail::call_param<T0>::type _0
+ // , typename detail::call_param<T1>::type _1)
+ // : vec(_0, _1) {}
+ #include <boost/fusion/container/vector/detail/vector_forward_ctor.hpp>
+
+ template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, typename U)>
+ vector&
+ operator=(vector<BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, U)> const& rhs)
+ {
+ vec = rhs.vec;
+ return *this;
+ }
+
+ template <typename T>
+ vector&
+ operator=(T const& rhs)
+ {
+ vec = rhs;
+ return *this;
+ }
+
+ template <int N>
+ typename add_reference<
+ typename mpl::at_c<types, N>::type
+ >::type
+ at_impl(mpl::int_<N> index)
+ {
+ return vec.at_impl(index);
+ }
+
+ template <int N>
+ typename add_reference<
+ typename add_const<
+ typename mpl::at_c<types, N>::type
+ >::type
+ >::type
+ at_impl(mpl::int_<N> index) const
+ {
+ return vec.at_impl(index);
+ }
+
+ template <typename I>
+ typename add_reference<
+ typename mpl::at<types, I>::type
+ >::type
+ at_impl(I /*index*/)
+ {
+ return vec.at_impl(mpl::int_<I::value>());
+ }
+
+ template<typename I>
+ typename add_reference<
[TRUNCATED]
To get the complete diff run:
svnlook diff /svnroot/boostheaders -r 35
More information about the Boostheaders-commits
mailing list