[Boostheaders-commits] r36 - in pkg/BH/inst/include/boost/fusion: adapted/mpl/detail adapted/struct/detail container/list/detail container/vector/detail sequence/comparison/detail sequence/intrinsic/detail sequence/io/detail tuple/detail/preprocessed view/iterator_range/detail view/joint_view/detail view/single_view/detail

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Sat May 4 03:03:04 CEST 2013


Author: edd
Date: 2013-05-04 03:03:03 +0200 (Sat, 04 May 2013)
New Revision: 36

Added:
   pkg/BH/inst/include/boost/fusion/adapted/mpl/detail/begin_impl.hpp
   pkg/BH/inst/include/boost/fusion/adapted/mpl/detail/end_impl.hpp
   pkg/BH/inst/include/boost/fusion/adapted/struct/detail/adapt_base.hpp
   pkg/BH/inst/include/boost/fusion/adapted/struct/detail/at_impl.hpp
   pkg/BH/inst/include/boost/fusion/adapted/struct/detail/begin_impl.hpp
   pkg/BH/inst/include/boost/fusion/adapted/struct/detail/category_of_impl.hpp
   pkg/BH/inst/include/boost/fusion/adapted/struct/detail/deref_impl.hpp
   pkg/BH/inst/include/boost/fusion/adapted/struct/detail/end_impl.hpp
   pkg/BH/inst/include/boost/fusion/adapted/struct/detail/extension.hpp
   pkg/BH/inst/include/boost/fusion/adapted/struct/detail/is_sequence_impl.hpp
   pkg/BH/inst/include/boost/fusion/adapted/struct/detail/is_view_impl.hpp
   pkg/BH/inst/include/boost/fusion/adapted/struct/detail/size_impl.hpp
   pkg/BH/inst/include/boost/fusion/adapted/struct/detail/value_at_impl.hpp
   pkg/BH/inst/include/boost/fusion/adapted/struct/detail/value_of_impl.hpp
   pkg/BH/inst/include/boost/fusion/container/list/detail/at_impl.hpp
   pkg/BH/inst/include/boost/fusion/container/list/detail/begin_impl.hpp
   pkg/BH/inst/include/boost/fusion/container/list/detail/deref_impl.hpp
   pkg/BH/inst/include/boost/fusion/container/list/detail/empty_impl.hpp
   pkg/BH/inst/include/boost/fusion/container/list/detail/end_impl.hpp
   pkg/BH/inst/include/boost/fusion/container/list/detail/equal_to_impl.hpp
   pkg/BH/inst/include/boost/fusion/container/list/detail/next_impl.hpp
   pkg/BH/inst/include/boost/fusion/container/list/detail/preprocessed/
   pkg/BH/inst/include/boost/fusion/container/list/detail/reverse_cons.hpp
   pkg/BH/inst/include/boost/fusion/container/list/detail/value_at_impl.hpp
   pkg/BH/inst/include/boost/fusion/container/list/detail/value_of_impl.hpp
   pkg/BH/inst/include/boost/fusion/container/vector/detail/advance_impl.hpp
   pkg/BH/inst/include/boost/fusion/container/vector/detail/at_impl.hpp
   pkg/BH/inst/include/boost/fusion/container/vector/detail/begin_impl.hpp
   pkg/BH/inst/include/boost/fusion/container/vector/detail/deref_impl.hpp
   pkg/BH/inst/include/boost/fusion/container/vector/detail/distance_impl.hpp
   pkg/BH/inst/include/boost/fusion/container/vector/detail/end_impl.hpp
   pkg/BH/inst/include/boost/fusion/container/vector/detail/equal_to_impl.hpp
   pkg/BH/inst/include/boost/fusion/container/vector/detail/next_impl.hpp
   pkg/BH/inst/include/boost/fusion/container/vector/detail/preprocessed/
   pkg/BH/inst/include/boost/fusion/container/vector/detail/prior_impl.hpp
   pkg/BH/inst/include/boost/fusion/container/vector/detail/value_at_impl.hpp
   pkg/BH/inst/include/boost/fusion/container/vector/detail/value_of_impl.hpp
   pkg/BH/inst/include/boost/fusion/container/vector/detail/vector_forward_ctor.hpp
   pkg/BH/inst/include/boost/fusion/container/vector/detail/vector_n.hpp
   pkg/BH/inst/include/boost/fusion/container/vector/detail/vector_n_chooser.hpp
   pkg/BH/inst/include/boost/fusion/sequence/comparison/detail/equal_to.hpp
   pkg/BH/inst/include/boost/fusion/sequence/comparison/detail/greater.hpp
   pkg/BH/inst/include/boost/fusion/sequence/comparison/detail/greater_equal.hpp
   pkg/BH/inst/include/boost/fusion/sequence/comparison/detail/less.hpp
   pkg/BH/inst/include/boost/fusion/sequence/comparison/detail/less_equal.hpp
   pkg/BH/inst/include/boost/fusion/sequence/comparison/detail/not_equal_to.hpp
   pkg/BH/inst/include/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp
   pkg/BH/inst/include/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp
   pkg/BH/inst/include/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp
   pkg/BH/inst/include/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp
   pkg/BH/inst/include/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp
   pkg/BH/inst/include/boost/fusion/sequence/io/detail/in.hpp
   pkg/BH/inst/include/boost/fusion/sequence/io/detail/manip.hpp
   pkg/BH/inst/include/boost/fusion/sequence/io/detail/out.hpp
   pkg/BH/inst/include/boost/fusion/tuple/detail/preprocessed/make_tuple.hpp
   pkg/BH/inst/include/boost/fusion/tuple/detail/preprocessed/make_tuple10.hpp
   pkg/BH/inst/include/boost/fusion/tuple/detail/preprocessed/make_tuple20.hpp
   pkg/BH/inst/include/boost/fusion/tuple/detail/preprocessed/make_tuple30.hpp
   pkg/BH/inst/include/boost/fusion/tuple/detail/preprocessed/make_tuple40.hpp
   pkg/BH/inst/include/boost/fusion/tuple/detail/preprocessed/make_tuple50.hpp
   pkg/BH/inst/include/boost/fusion/tuple/detail/preprocessed/tuple.hpp
   pkg/BH/inst/include/boost/fusion/tuple/detail/preprocessed/tuple10.hpp
   pkg/BH/inst/include/boost/fusion/tuple/detail/preprocessed/tuple10_fwd.hpp
   pkg/BH/inst/include/boost/fusion/tuple/detail/preprocessed/tuple20.hpp
   pkg/BH/inst/include/boost/fusion/tuple/detail/preprocessed/tuple20_fwd.hpp
   pkg/BH/inst/include/boost/fusion/tuple/detail/preprocessed/tuple30.hpp
   pkg/BH/inst/include/boost/fusion/tuple/detail/preprocessed/tuple30_fwd.hpp
   pkg/BH/inst/include/boost/fusion/tuple/detail/preprocessed/tuple40.hpp
   pkg/BH/inst/include/boost/fusion/tuple/detail/preprocessed/tuple40_fwd.hpp
   pkg/BH/inst/include/boost/fusion/tuple/detail/preprocessed/tuple50.hpp
   pkg/BH/inst/include/boost/fusion/tuple/detail/preprocessed/tuple50_fwd.hpp
   pkg/BH/inst/include/boost/fusion/tuple/detail/preprocessed/tuple_fwd.hpp
   pkg/BH/inst/include/boost/fusion/tuple/detail/preprocessed/tuple_tie.hpp
   pkg/BH/inst/include/boost/fusion/tuple/detail/preprocessed/tuple_tie10.hpp
   pkg/BH/inst/include/boost/fusion/tuple/detail/preprocessed/tuple_tie20.hpp
   pkg/BH/inst/include/boost/fusion/tuple/detail/preprocessed/tuple_tie30.hpp
   pkg/BH/inst/include/boost/fusion/tuple/detail/preprocessed/tuple_tie40.hpp
   pkg/BH/inst/include/boost/fusion/tuple/detail/preprocessed/tuple_tie50.hpp
   pkg/BH/inst/include/boost/fusion/view/iterator_range/detail/at_impl.hpp
   pkg/BH/inst/include/boost/fusion/view/iterator_range/detail/begin_impl.hpp
   pkg/BH/inst/include/boost/fusion/view/iterator_range/detail/end_impl.hpp
   pkg/BH/inst/include/boost/fusion/view/iterator_range/detail/is_segmented_impl.hpp
   pkg/BH/inst/include/boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp
   pkg/BH/inst/include/boost/fusion/view/iterator_range/detail/segments_impl.hpp
   pkg/BH/inst/include/boost/fusion/view/iterator_range/detail/size_impl.hpp
   pkg/BH/inst/include/boost/fusion/view/iterator_range/detail/value_at_impl.hpp
   pkg/BH/inst/include/boost/fusion/view/joint_view/detail/begin_impl.hpp
   pkg/BH/inst/include/boost/fusion/view/joint_view/detail/deref_data_impl.hpp
   pkg/BH/inst/include/boost/fusion/view/joint_view/detail/deref_impl.hpp
   pkg/BH/inst/include/boost/fusion/view/joint_view/detail/end_impl.hpp
   pkg/BH/inst/include/boost/fusion/view/joint_view/detail/key_of_impl.hpp
   pkg/BH/inst/include/boost/fusion/view/joint_view/detail/next_impl.hpp
   pkg/BH/inst/include/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp
   pkg/BH/inst/include/boost/fusion/view/joint_view/detail/value_of_impl.hpp
   pkg/BH/inst/include/boost/fusion/view/single_view/detail/advance_impl.hpp
   pkg/BH/inst/include/boost/fusion/view/single_view/detail/at_impl.hpp
   pkg/BH/inst/include/boost/fusion/view/single_view/detail/begin_impl.hpp
   pkg/BH/inst/include/boost/fusion/view/single_view/detail/deref_impl.hpp
   pkg/BH/inst/include/boost/fusion/view/single_view/detail/distance_impl.hpp
   pkg/BH/inst/include/boost/fusion/view/single_view/detail/end_impl.hpp
   pkg/BH/inst/include/boost/fusion/view/single_view/detail/equal_to_impl.hpp
   pkg/BH/inst/include/boost/fusion/view/single_view/detail/next_impl.hpp
   pkg/BH/inst/include/boost/fusion/view/single_view/detail/prior_impl.hpp
   pkg/BH/inst/include/boost/fusion/view/single_view/detail/size_impl.hpp
   pkg/BH/inst/include/boost/fusion/view/single_view/detail/value_at_impl.hpp
   pkg/BH/inst/include/boost/fusion/view/single_view/detail/value_of_impl.hpp
Log:
steps towards BH 1.51.0-1 with foreach and math distributions


Added: pkg/BH/inst/include/boost/fusion/adapted/mpl/detail/begin_impl.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/adapted/mpl/detail/begin_impl.hpp	                        (rev 0)
+++ pkg/BH/inst/include/boost/fusion/adapted/mpl/detail/begin_impl.hpp	2013-05-04 01:03:03 UTC (rev 36)
@@ -0,0 +1,45 @@
+/*=============================================================================
+    Copyright (c) 2001-2011 Joel de Guzman
+    Copyright (c) 2005-2006 Dan Marsden
+
+    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_BEGIN_IMPL_31122005_1209)
+#define BOOST_FUSION_BEGIN_IMPL_31122005_1209
+
+#include <boost/fusion/adapted/mpl/mpl_iterator.hpp>
+#include <boost/mpl/begin.hpp>
+#include <boost/type_traits/remove_const.hpp>
+
+namespace boost { namespace fusion {
+    
+    struct mpl_sequence_tag;
+
+    namespace extension
+    {
+        template <typename Tag>
+        struct begin_impl;
+
+        template <>
+        struct begin_impl<mpl_sequence_tag>
+        {
+            template <typename Sequence>
+            struct apply 
+            {
+                typedef typename mpl::begin<
+                    typename remove_const<Sequence>::type
+                >::type iterator;
+                typedef mpl_iterator<iterator> type;
+                
+                static type
+                call(Sequence)
+                {
+                    return type();
+                }
+            };
+        };
+    }
+}}
+
+#endif

Added: pkg/BH/inst/include/boost/fusion/adapted/mpl/detail/end_impl.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/adapted/mpl/detail/end_impl.hpp	                        (rev 0)
+++ pkg/BH/inst/include/boost/fusion/adapted/mpl/detail/end_impl.hpp	2013-05-04 01:03:03 UTC (rev 36)
@@ -0,0 +1,45 @@
+/*=============================================================================
+    Copyright (c) 2001-2011 Joel de Guzman
+    Copyright (c) 2005-2006 Dan Marsden
+
+    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_END_IMPL_31122005_1237)
+#define BOOST_FUSION_END_IMPL_31122005_1237
+
+#include <boost/fusion/adapted/mpl/mpl_iterator.hpp>
+#include <boost/mpl/end.hpp>
+#include <boost/type_traits/add_const.hpp>
+
+namespace boost { namespace fusion
+{
+    struct mpl_sequence_tag;
+
+    namespace extension
+    {
+        template <typename Tag>
+        struct end_impl;
+
+        template <>
+        struct end_impl<mpl_sequence_tag>
+        {
+            template <typename Sequence>
+            struct apply
+            {
+                typedef typename mpl::end<
+                    typename remove_const<Sequence>::type
+                >::type iterator;
+                typedef mpl_iterator<iterator> type;
+                
+                static type
+                call(Sequence)
+                {
+                    return type();
+                }
+            };
+        };
+    }
+}}
+
+#endif

Added: pkg/BH/inst/include/boost/fusion/adapted/struct/detail/adapt_base.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/adapted/struct/detail/adapt_base.hpp	                        (rev 0)
+++ pkg/BH/inst/include/boost/fusion/adapted/struct/detail/adapt_base.hpp	2013-05-04 01:03:03 UTC (rev 36)
@@ -0,0 +1,245 @@
+/*=============================================================================
+    Copyright (c) 2001-2009 Joel de Guzman
+    Copyright (c) 2005-2006 Dan Marsden
+    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_DETAIL_ADAPT_BASE_HPP
+#define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_ADAPT_BASE_HPP
+
+#include <boost/config.hpp>
+#include <boost/fusion/support/tag_of_fwd.hpp>
+
+#include <boost/preprocessor/empty.hpp>
+#include <boost/preprocessor/stringize.hpp>
+#include <boost/preprocessor/control/if.hpp>
+#include <boost/preprocessor/seq/size.hpp>
+#include <boost/preprocessor/seq/for_each.hpp>
+#include <boost/preprocessor/seq/for_each_i.hpp>
+#include <boost/preprocessor/seq/enum.hpp>
+#include <boost/preprocessor/seq/seq.hpp>
+#include <boost/preprocessor/tuple/eat.hpp>
+#include <boost/preprocessor/tuple/elem.hpp>
+#include <boost/preprocessor/arithmetic/dec.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/tag.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/type_traits/add_const.hpp>
+
+#define BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME_TEMPLATE_PARAMS(SEQ)              \
+    BOOST_PP_SEQ_HEAD(SEQ)<BOOST_PP_SEQ_ENUM(BOOST_PP_SEQ_TAIL(SEQ))>           \
+    BOOST_PP_EMPTY()
+
+#define BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(SEQ)                              \
+    BOOST_PP_IF(                                                                \
+        BOOST_PP_SEQ_HEAD(SEQ),                                                 \
+        BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME_TEMPLATE_PARAMS,                  \
+        BOOST_PP_SEQ_HEAD)(BOOST_PP_SEQ_TAIL(SEQ))
+
+#define BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS_IMPL_C(R, _, ELEM)     \
+    (typename ELEM)
+#define BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS_IMPL(SEQ)              \
+    BOOST_PP_SEQ_ENUM(                                                          \
+        BOOST_PP_SEQ_FOR_EACH(                                                  \
+            BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS_IMPL_C,            \
+            _,                                                                  \
+            BOOST_PP_SEQ_TAIL(SEQ)))
+#define BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS(SEQ)                   \
+    BOOST_PP_IF(                                                                \
+        BOOST_PP_SEQ_HEAD(SEQ),                                                 \
+        BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS_IMPL,                  \
+        BOOST_PP_TUPLE_EAT(1))(SEQ)
+
+#ifdef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
+#   define BOOST_FUSION_ADAPT_STRUCT_TAG_OF_SPECIALIZATION(                     \
+        MODIFIER, TEMPLATE_PARAMS_SEQ, NAME_SEQ, TAG)                           \
+                                                                                \
+    template<                                                                   \
+        BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS(TEMPLATE_PARAMS_SEQ)   \
+    >                                                                           \
+    struct tag_of<                                                              \
+        BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ) MODIFIER                \
+      , void                                                                    \
+    >                                                                           \
+    {                                                                           \
+        typedef TAG type;                                                       \
+    };
+#else
+#   define BOOST_FUSION_ADAPT_STRUCT_TAG_OF_SPECIALIZATION(                     \
+        MODIFIER, TEMPLATE_PARAMS_SEQ, NAME_SEQ, TAG)                           \
+                                                                                \
+    template<                                                                   \
+        BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS(TEMPLATE_PARAMS_SEQ)   \
+    >                                                                           \
+    struct tag_of<BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ) MODIFIER>     \
+    {                                                                           \
+        typedef TAG type;                                                       \
+    };
+#endif
+
+#define BOOST_FUSION_ADAPT_STRUCT_BASE_UNPACK_AND_CALL(R,DATA,I,ATTRIBUTE)      \
+    BOOST_PP_TUPLE_ELEM(3,0,DATA)(                                              \
+        BOOST_PP_TUPLE_ELEM(3,1,DATA),                                          \
+        BOOST_PP_TUPLE_ELEM(3,2,DATA),                                          \
+        I,                                                                      \
+        ATTRIBUTE)
+
+#ifdef BOOST_MSVC
+#   define BOOST_FUSION_ADAPT_STRUCT_MSVC_REDEFINE_TEMPLATE_PARAM(R,_,ELEM)     \
+        typedef ELEM ELEM;
+#   define BOOST_FUSION_ADAPT_STRUCT_MSVC_REDEFINE_TEMPLATE_PARAMS_IMPL(SEQ)    \
+        BOOST_PP_SEQ_FOR_EACH(                                                  \
+            BOOST_FUSION_ADAPT_STRUCT_MSVC_REDEFINE_TEMPLATE_PARAM,             \
+            _,                                                                  \
+            BOOST_PP_SEQ_TAIL(SEQ))
+#   define BOOST_FUSION_ADAPT_STRUCT_MSVC_REDEFINE_TEMPLATE_PARAMS(SEQ)         \
+        BOOST_PP_IF(                                                            \
+            BOOST_PP_SEQ_HEAD(SEQ),                                             \
+            BOOST_FUSION_ADAPT_STRUCT_MSVC_REDEFINE_TEMPLATE_PARAMS_IMPL,       \
+            BOOST_PP_TUPLE_EAT(1))(SEQ)
+#else
+#   define BOOST_FUSION_ADAPT_STRUCT_MSVC_REDEFINE_TEMPLATE_PARAMS(SEQ)
+#endif
+
+#define BOOST_FUSION_ADAPT_STRUCT_C_BASE(                                       \
+    TEMPLATE_PARAMS_SEQ,NAME_SEQ,I,PREFIX,ATTRIBUTE,ATTRIBUTE_TUPEL_SIZE)       \
+                                                                                \
+    template<                                                                   \
+        BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS(TEMPLATE_PARAMS_SEQ)   \
+    >                                                                           \
+    struct access::struct_member<                                               \
+        BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ)                         \
+      , I                                                                       \
+    >                                                                           \
+    {                                                                           \
+        typedef                                                                 \
+            BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 0, ATTRIBUTE)             \
+        attribute_type;                                                         \
+        BOOST_FUSION_ADAPT_STRUCT_MSVC_REDEFINE_TEMPLATE_PARAMS(                \
+            TEMPLATE_PARAMS_SEQ)                                                \
+                                                                                \
+        typedef attribute_type type;                                            \
+                                                                                \
+        template<typename Seq>                                                  \
+        struct apply                                                            \
+        {                                                                       \
+            typedef typename                                                    \
+                add_reference<                                                  \
+                    typename mpl::eval_if<                                      \
+                        is_const<Seq>                                           \
+                      , add_const<attribute_type>                               \
+                      , mpl::identity<attribute_type>                           \
+                    >::type                                                     \
+                >::type                                                         \
+            type;                                                               \
+                                                                                \
+            static type                                                         \
+            call(Seq& seq)                                                      \
+            {                                                                   \
+                return seq.PREFIX()                                             \
+                    BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 1, ATTRIBUTE);    \
+            }                                                                   \
+        };                                                                      \
+    };                                                                          \
+                                                                                \
+    template<                                                                   \
+        BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS(TEMPLATE_PARAMS_SEQ)   \
+    >                                                                           \
+    struct struct_member_name<                                                  \
+        BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ)                         \
+      , I                                                                       \
+    >                                                                           \
+    {                                                                           \
+        typedef char const* type;                                               \
+                                                                                \
+        static type                                                             \
+        call()                                                                  \
+        {                                                                       \
+            return BOOST_PP_STRINGIZE(                                          \
+                BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE,1,ATTRIBUTE));         \
+        }                                                                       \
+    };
+
+#define BOOST_FUSION_ADAPT_STRUCT_BASE(                                         \
+    TEMPLATE_PARAMS_SEQ,                                                        \
+    NAME_SEQ,                                                                   \
+    TAG,                                                                        \
+    IS_VIEW,                                                                    \
+    ATTRIBUTES_SEQ,                                                             \
+    ATTRIBUTES_CALLBACK)                                                        \
+                                                                                \
+namespace boost                                                                 \
+{                                                                               \
+    namespace fusion                                                            \
+    {                                                                           \
+        namespace traits                                                        \
+        {                                                                       \
+            BOOST_FUSION_ADAPT_STRUCT_TAG_OF_SPECIALIZATION(                    \
+                BOOST_PP_EMPTY(), TEMPLATE_PARAMS_SEQ, NAME_SEQ, TAG)           \
+            BOOST_FUSION_ADAPT_STRUCT_TAG_OF_SPECIALIZATION(                    \
+                const, TEMPLATE_PARAMS_SEQ, NAME_SEQ, TAG)                      \
+        }                                                                       \
+                                                                                \
+        namespace extension                                                     \
+        {                                                                       \
+            BOOST_PP_IF(                                                        \
+                BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(ATTRIBUTES_SEQ)),                \
+                BOOST_PP_SEQ_FOR_EACH_I_R,                                      \
+                BOOST_PP_TUPLE_EAT(4))(                                         \
+                    1,                                                          \
+                    BOOST_FUSION_ADAPT_STRUCT_BASE_UNPACK_AND_CALL,             \
+                    (ATTRIBUTES_CALLBACK,TEMPLATE_PARAMS_SEQ,NAME_SEQ),         \
+                    BOOST_PP_SEQ_TAIL(ATTRIBUTES_SEQ))                          \
+                                                                                \
+            template<                                                           \
+                BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS(               \
+                    TEMPLATE_PARAMS_SEQ)                                        \
+            >                                                                   \
+            struct struct_size<BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ)> \
+              : mpl::int_<BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(ATTRIBUTES_SEQ))>      \
+            {};                                                                 \
+                                                                                \
+            template<                                                           \
+                BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS(               \
+                    TEMPLATE_PARAMS_SEQ)                                        \
+            >                                                                   \
+            struct struct_is_view<                                              \
+                BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ)                 \
+            >                                                                   \
+              : mpl::BOOST_PP_IF(IS_VIEW,true_,false_)                          \
+            {};                                                                 \
+        }                                                                       \
+    }                                                                           \
+                                                                                \
+    namespace mpl                                                               \
+    {                                                                           \
+        template<typename>                                                      \
+        struct sequence_tag;                                                    \
+                                                                                \
+        template<                                                               \
+            BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS(                   \
+                TEMPLATE_PARAMS_SEQ)                                            \
+        >                                                                       \
+        struct sequence_tag<BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ)>    \
+        {                                                                       \
+            typedef fusion::fusion_sequence_tag type;                           \
+        };                                                                      \
+                                                                                \
+        template<                                                               \
+            BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS(                   \
+                TEMPLATE_PARAMS_SEQ)                                            \
+        >                                                                       \
+        struct sequence_tag<                                                    \
+            BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ) const               \
+        >                                                                       \
+        {                                                                       \
+            typedef fusion::fusion_sequence_tag type;                           \
+        };                                                                      \
+    }                                                                           \
+}
+
+#endif

Added: pkg/BH/inst/include/boost/fusion/adapted/struct/detail/at_impl.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/adapted/struct/detail/at_impl.hpp	                        (rev 0)
+++ pkg/BH/inst/include/boost/fusion/adapted/struct/detail/at_impl.hpp	2013-05-04 01:03:03 UTC (rev 36)
@@ -0,0 +1,38 @@
+/*=============================================================================
+    Copyright (c) 2001-2011 Joel de Guzman
+    Copyright (c) 2005-2006 Dan Marsden
+    Copyright (c) 2009-2010 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_DETAIL_AT_IMPL_HPP
+#define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_AT_IMPL_HPP
+
+#include <boost/mpl/int.hpp>
+
+namespace boost { namespace fusion { namespace extension
+{
+    template<typename>
+    struct at_impl;
+
+    template <>
+    struct at_impl<struct_tag>
+    {
+        template <typename Seq, typename N>
+        struct apply
+          : access::struct_member<
+                typename remove_const<Seq>::type
+              , N::value
+            >::template apply<Seq>
+        {};
+    };
+
+    template <>
+    struct at_impl<assoc_struct_tag>
+      : at_impl<struct_tag>
+    {};
+}}}
+
+#endif

Added: pkg/BH/inst/include/boost/fusion/adapted/struct/detail/begin_impl.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/adapted/struct/detail/begin_impl.hpp	                        (rev 0)
+++ pkg/BH/inst/include/boost/fusion/adapted/struct/detail/begin_impl.hpp	2013-05-04 01:03:03 UTC (rev 36)
@@ -0,0 +1,67 @@
+/*=============================================================================
+    Copyright (c) 2001-2011 Joel de Guzman
+    Copyright (c) 2005-2006 Dan Marsden
+    Copyright (c) 2009-2010 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_DETAIL_BEGIN_IMPL_HPP
+#define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_BEGIN_IMPL_HPP
+
+#include <boost/fusion/iterator/basic_iterator.hpp>
+
+namespace boost { namespace fusion { namespace extension
+{
+    template<typename>
+    struct begin_impl;
+
+    template <>
+    struct begin_impl<struct_tag>
+    {
+        template <typename Seq>
+        struct apply
+        {
+            typedef
+                basic_iterator<
+                    struct_iterator_tag
+                  , random_access_traversal_tag
+                  , Seq
+                  , 0
+                >
+            type;
+
+            static type
+            call(Seq& seq)
+            {
+                return type(seq,0);
+            }
+        };
+    };
+
+    template <>
+    struct begin_impl<assoc_struct_tag>
+    {
+        template <typename Seq>
+        struct apply
+        {
+            typedef
+                basic_iterator<
+                    struct_iterator_tag
+                  , assoc_struct_category
+                  , Seq
+                  , 0
+                >
+            type;
+
+            static type
+            call(Seq& seq)
+            {
+                return type(seq,0);
+            }
+        };
+    };
+}}}
+
+#endif

Added: pkg/BH/inst/include/boost/fusion/adapted/struct/detail/category_of_impl.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/adapted/struct/detail/category_of_impl.hpp	                        (rev 0)
+++ pkg/BH/inst/include/boost/fusion/adapted/struct/detail/category_of_impl.hpp	2013-05-04 01:03:03 UTC (rev 36)
@@ -0,0 +1,42 @@
+/*=============================================================================
+    Copyright (c) 2001-2011 Joel de Guzman
+    Copyright (c) 2005-2006 Dan Marsden
+    Copyright (c) 2009-2010 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_DETAIL_CATEGORY_OF_IMPL_HPP
+#define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_CATEGORY_OF_IMPL_HPP
+
+namespace boost { namespace fusion
+{
+    namespace extension
+    {
+        template<typename>
+        struct category_of_impl;
+
+        template<>
+        struct category_of_impl<struct_tag>
+        {
+            template<typename Seq>
+            struct apply
+            {
+                typedef random_access_traversal_tag type;
+            };
+        };
+
+        template<>
+        struct category_of_impl<assoc_struct_tag>
+        {
+            template<typename Seq>
+            struct apply
+            {
+                typedef assoc_struct_category type;
+            };
+        };
+    }
+}}
+
+#endif

Added: pkg/BH/inst/include/boost/fusion/adapted/struct/detail/deref_impl.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/adapted/struct/detail/deref_impl.hpp	                        (rev 0)
+++ pkg/BH/inst/include/boost/fusion/adapted/struct/detail/deref_impl.hpp	2013-05-04 01:03:03 UTC (rev 36)
@@ -0,0 +1,41 @@
+/*=============================================================================
+    Copyright (c) 2009-2010 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_DETAIL_DEREF_IMPL_HPP
+#define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_DEREF_IMPL_HPP
+
+namespace boost { namespace fusion { namespace extension
+{
+    template <typename>
+    struct deref_impl;
+
+    template <>
+    struct deref_impl<struct_iterator_tag>
+    {
+        template <typename It>
+        struct apply
+        {
+           typedef typename
+               access::struct_member<
+                   typename remove_const<typename It::seq_type>::type
+                 , It::index::value
+               >::template apply<typename It::seq_type>
+           impl;
+
+           typedef typename impl::type type;
+
+           static
+           type
+           call(It const& it)
+           {
+               return impl::call(*it.seq);
+           }
+        };
+    };
+}}}
+
+#endif

Added: pkg/BH/inst/include/boost/fusion/adapted/struct/detail/end_impl.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/adapted/struct/detail/end_impl.hpp	                        (rev 0)
+++ pkg/BH/inst/include/boost/fusion/adapted/struct/detail/end_impl.hpp	2013-05-04 01:03:03 UTC (rev 36)
@@ -0,0 +1,67 @@
+/*=============================================================================
+    Copyright (c) 2001-2011 Joel de Guzman
+    Copyright (c) 2005-2006 Dan Marsden
+    Copyright (c) 2009-2010 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_DETAIL_END_IMPL_HPP
+#define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_END_IMPL_HPP
+
+#include <boost/fusion/iterator/basic_iterator.hpp>
+
+namespace boost { namespace fusion { namespace extension
+{
+    template <typename>
+    struct end_impl;
+
+    template <>
+    struct end_impl<struct_tag>
+    {
+        template <typename Seq>
+        struct apply
+        {
+            typedef
+                basic_iterator<
+                    struct_iterator_tag
+                  , random_access_traversal_tag
+                  , Seq
+                  , struct_size<typename remove_const<Seq>::type>::value
+                >
+            type;
+
+            static type
+            call(Seq& seq)
+            {
+                return type(seq,0);
+            }
+        };
+    };
+
+    template <>
+    struct end_impl<assoc_struct_tag>
+    {
+        template <typename Seq>
+        struct apply
+        {
+            typedef
+                basic_iterator<
+                    struct_iterator_tag
+                  , assoc_struct_category
+                  , Seq
+                  , struct_size<typename remove_const<Seq>::type>::value
+                >
+            type;
+
+            static type
+            call(Seq& seq)
+            {
+                return type(seq,0);
+            }
+        };
+    };
+}}}
+
+#endif

Added: pkg/BH/inst/include/boost/fusion/adapted/struct/detail/extension.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/adapted/struct/detail/extension.hpp	                        (rev 0)
+++ pkg/BH/inst/include/boost/fusion/adapted/struct/detail/extension.hpp	2013-05-04 01:03:03 UTC (rev 36)
@@ -0,0 +1,57 @@
+/*=============================================================================
+    Copyright (c) 2001-2007 Joel de Guzman
+    Copyright (c) 2005-2006 Dan Marsden
+    Copyright (c) 2009-2010 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_DETAIL_EXTENSION_HPP
+#define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_EXTENSION_HPP
+
+#include <boost/fusion/support/category_of.hpp>
+
+namespace boost { namespace fusion
+{
+    struct struct_tag;
+    struct struct_iterator_tag;
+    struct assoc_struct_tag;
+    struct fusion_sequence_tag;
+
+    struct assoc_struct_category
+      : random_access_traversal_tag, associative_tag
+    {};
+
+    namespace extension
+    {
+        struct no_such_member;
+
+        struct access
+        {
+            template<typename Seq, int N>
+            struct struct_member;
+
+            template<typename Seq, int N>
+            struct adt_attribute_access;
+        };
+
+        template <typename T, int N, bool Const>
+        struct adt_attribute_proxy;
+
+        template<typename Seq, int N>
+        struct struct_member_name;
+
+        template<typename Seq>
+        struct struct_size;
+
+        template<typename Seq>
+        struct struct_is_view;
+
+        template<typename Seq, int N>
+        struct struct_assoc_key;
+
+    }
+}}
+
+#endif

Added: pkg/BH/inst/include/boost/fusion/adapted/struct/detail/is_sequence_impl.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/adapted/struct/detail/is_sequence_impl.hpp	                        (rev 0)
+++ pkg/BH/inst/include/boost/fusion/adapted/struct/detail/is_sequence_impl.hpp	2013-05-04 01:03:03 UTC (rev 36)
@@ -0,0 +1,35 @@
+/*=============================================================================
+    Copyright (c) 2001-2011 Joel de Guzman
+    Copyright (c) 2005-2006 Dan Marsden
+    Copyright (c) 2009-2010 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_DETAIL_IS_SEQUENCE_IMPL_HPP
+#define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_IS_SEQUENCE_IMPL_HPP
+
+#include <boost/mpl/bool.hpp>
+
+namespace boost { namespace fusion { namespace extension
+{
+    template<typename>
+    struct is_sequence_impl;
+
+    template<>
+    struct is_sequence_impl<struct_tag>
+    {
+        template<typename Seq>
+        struct apply
+          : mpl::true_
+        {};
+    };
+
+    template <>
+    struct is_sequence_impl<assoc_struct_tag>
+      : is_sequence_impl<struct_tag>
+    {};
+}}}
+
+#endif

Added: pkg/BH/inst/include/boost/fusion/adapted/struct/detail/is_view_impl.hpp
===================================================================
[TRUNCATED]

To get the complete diff run:
    svnlook diff /svnroot/boostheaders -r 36


More information about the Boostheaders-commits mailing list