[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