$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r56478 - in sandbox/SOC/2009/fusion: . boost/fusion/functional/invocation/detail/0x boost/fusion/sequence/intrinsic boost/fusion/view/detail boost/fusion/view/filter_view/detail boost/fusion/view/joint_view/detail boost/fusion/view/repetitive_view/detail boost/fusion/view/reverse_view/detail
From: mr.chr.schmidt_at_[hidden]
Date: 2009-09-29 17:35:32
Author: cschmidt
Date: 2009-09-29 17:35:30 EDT (Tue, 29 Sep 2009)
New Revision: 56478
URL: http://svn.boost.org/trac/boost/changeset/56478
Log:
bugfixes
Text files modified: 
   sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/0x/invoke_impl_detail.hpp   |     2 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at_key.hpp                            |     2 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/view/detail/view_storage.hpp                             |     3 +++                                     
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/deref_data_impl.hpp              |     2 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/deref_data_impl.hpp               |     2 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/advance_impl.hpp             |     4 ++--                                    
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/deref_data_impl.hpp          |     2 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/deref_impl.hpp               |     8 ++------                                
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/next_impl.hpp                |    17 +++++++----------                       
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/prior_impl.hpp               |    25 +++++++++++++------------               
   sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/repetitive_view_iterator.hpp |    13 ++++++++++---                           
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/deref_data_impl.hpp             |     2 +-                                      
   sandbox/SOC/2009/fusion/project-root.jam                                                      |     2 +-                                      
   13 files changed, 44 insertions(+), 40 deletions(-)
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/0x/invoke_impl_detail.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/0x/invoke_impl_detail.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/detail/0x/invoke_impl_detail.hpp	2009-09-29 17:35:30 EDT (Tue, 29 Sep 2009)
@@ -354,7 +354,7 @@
                         f,
                         seq,
                         mpl::int_<NumArgsLeft-1>(),
-                        deref(advance_c<NumArgsLeft-1>(
+                        fusion::deref(fusion::advance_c<NumArgsLeft-1>(
                             fusion::begin(std::forward<Seq>(seq))
                         )),
                         std::forward<Args>(args)...);
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at_key.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at_key.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at_key.hpp	2009-09-29 17:35:30 EDT (Tue, 29 Sep 2009)
@@ -40,7 +40,7 @@
                 static type
                 call(Seq seq)
                 {
-                    return deref_data(find_key<Key>(
+                    return fusion::deref_data(fusion::find_key<Key>(
                         BOOST_FUSION_FORWARD(Seq,seq)));
                 }
             };
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/detail/view_storage.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/detail/view_storage.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/detail/view_storage.hpp	2009-09-29 17:35:30 EDT (Tue, 29 Sep 2009)
@@ -16,6 +16,8 @@
 #include <boost/type_traits/add_const.hpp>
 #include <boost/type_traits/remove_const.hpp>
 
+//TODO is_convertible assert
+
 namespace boost { namespace fusion { namespace detail
 {
     template<typename T>
@@ -37,6 +39,7 @@
         }
 
     public:
+        typedef T arg_type;
         typedef typename
             mpl::if_<
                 traits::is_view<T>
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/deref_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/deref_data_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/deref_data_impl.hpp	2009-09-29 17:35:30 EDT (Tue, 29 Sep 2009)
@@ -30,7 +30,7 @@
             static type
             call(It it)
             {
-                return deref_data(it.first);
+                return fusion::deref_data(it.first);
             }
         };
     };
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/deref_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/deref_data_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/deref_data_impl.hpp	2009-09-29 17:35:30 EDT (Tue, 29 Sep 2009)
@@ -30,7 +30,7 @@
             static type
             call(It it)
             {
-                return deref_data(it.first);
+                return fusion::deref_data(it.first);
             }
         };
     };
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/advance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/advance_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/advance_impl.hpp	2009-09-29 17:35:30 EDT (Tue, 29 Sep 2009)
@@ -67,7 +67,7 @@
             static type
             call(It const& it)
             {
-                return fusion::advance<real_n>(fusion::begin(it.seq));
+                return fusion::advance<real_n>(fusion::begin(it.seq.get()));
             }
         };
     }
@@ -97,7 +97,7 @@
                 static type
                 call(It it)
                 {
-                    return type(it.seq,gen::call(it));
+                    return type(it.seq.get(),gen::call(it));
                 }
             };
         };
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/deref_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/deref_data_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/deref_data_impl.hpp	2009-09-29 17:35:30 EDT (Tue, 29 Sep 2009)
@@ -30,7 +30,7 @@
             static type
             call(It it)
             {
-                return deref_data(it.first);
+                return fusion::deref_data(it.it);
             }
         };
     };
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/deref_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/deref_impl.hpp	2009-09-29 17:35:30 EDT (Tue, 29 Sep 2009)
@@ -25,18 +25,14 @@
         {
             typedef typename
                 result_of::deref<
-                    typename result_of::prior<
-                        typename detail::remove_reference<
-                            It
-                        >::type::it_type
-                    >::type
+                    typename detail::remove_reference<It>::type::it_type
                 >::type
             type;
 
             static type
             call(It it)
             {
-                return fusion::deref(fusion::prior(it.first));
+                return fusion::deref(it.it);
             }
         };
     };
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/next_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/next_impl.hpp	2009-09-29 17:35:30 EDT (Tue, 29 Sep 2009)
@@ -26,13 +26,10 @@
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;
-            typedef typename
-                detail::remove_reference<typename it::seq_type>::seq_type
-            real_seq_type;
             typedef
                 mpl::equal_to<
-                    mpl::next<typename it::index>
-                  , result_of::size<real_seq_type>
+                    typename mpl::next<typename it::index>::type
+                  , result_of::size<typename it::seq_type>
                 >
             need_begin_it;
 
@@ -41,23 +38,23 @@
                     typename it::seq_type
                   , typename mpl::eval_if<
                         need_begin_it
-                      , result_of::begin<real_seq_type>
-                      , result_of::prior<typename it::it>
+                      , result_of::begin<typename it::seq_type>
+                      , result_of::next<typename it::it_type>
                     >::type
-                  , mpl::next<typename it::index>::value
+                  , mpl::next<typename it::index>::type::value
                 >
             type;
 
             static type
             call_impl(It it, mpl::true_ /*need_begin_it*/)
             {
-                return type(it.seq,fusion::begin(it.seq.seq.get()));
+                return type(it.seq.get(),fusion::begin(it.seq.seq.get()));
             }
 
             static type
             call_impl(It it, mpl::false_ /*need_begin_it*/)
             {
-                return type(it.seq,fusion::next(it.it));
+                return type(it.seq.get(),fusion::next(it.it));
             }
 
             static type
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/prior_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/prior_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/prior_impl.hpp	2009-09-29 17:35:30 EDT (Tue, 29 Sep 2009)
@@ -11,6 +11,7 @@
 #include <boost/fusion/sequence/intrinsic/end.hpp>
 #include <boost/fusion/iterator/prior.hpp>
 
+#include <boost/mpl/identity.hpp>
 #include <boost/mpl/bool.hpp>
 #include <boost/mpl/next.hpp>
 #include <boost/mpl/equal_to.hpp>
@@ -24,32 +25,32 @@
         struct apply
         {
             typedef typename detail::remove_reference<It>::type it;
-            typedef typename
-                detail::remove_reference<typename it::seq_type>::seq_type
-            real_seq_type;
 
             typedef
                 repetitive_view_iterator<
                     typename it::seq_type
-                  , typename mpl::eval_if<
-                        typename it::index
-                      , result_of::prior<typename it::it>
-                      , result_of::end<real_seq_type>
+                  , typename result_of::prior<
+                        typename mpl::eval_if<
+                            typename it::index
+                          , mpl::identity<typename it::it_type>
+                          , result_of::end<typename it::seq_type>
+                        >::type
                     >::type
-                  , mpl::next<typename it::index>::value
+                  , mpl::next<typename it::index>::type::value
                 >
             type;
 
             static type
-            call_impl(It it, mpl::true_ /*need_end_it*/)
+            call_impl(It it, mpl::false_ /*need_end_it*/)
             {
-                return type(it.seq,fusion::end(it.seq.seq.get()));
+                return type(it.seq.get(),
+                        fusion::prior(fusion::end(it.seq.get())));
             }
 
             static type
-            call_impl(It it, mpl::false_ /*need_end_it*/)
+            call_impl(It it, mpl::true_ /*need_end_it*/)
             {
-                return type(it.seq,fusion::prior(it.it));
+                return type(it.seq.get(),fusion::prior(it.it));
             }
 
             static type
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/repetitive_view_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/repetitive_view_iterator.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/repetitive_view/detail/repetitive_view_iterator.hpp	2009-09-29 17:35:30 EDT (Tue, 29 Sep 2009)
@@ -42,8 +42,15 @@
             BOOST_FUSION_TAG_CHECK(OtherIt,repetitive_view_iterator_tag);
         }
 
-        repetitive_view_iterator(Seq seq, It const& it)
-          : seq(seq)
+        template<typename OtherSeq>
+        repetitive_view_iterator(
+#ifdef BOOST_NO_RVALUE_REFERENCES
+                typename detail::view_storage<Seq>::call_param seq,
+#else
+                OtherSeq&& other_seq,
+#endif
+                It const& it)
+          : seq(BOOST_FUSION_FORWARD(OtherSeq,other_seq))
           , it(it)
         {}
 
@@ -58,7 +65,7 @@
             return *this;
         }
 
-        Seq seq;
+        detail::view_storage<Seq> seq;
         It it;
     };
 }}
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/deref_data_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/deref_data_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/deref_data_impl.hpp	2009-09-29 17:35:30 EDT (Tue, 29 Sep 2009)
@@ -30,7 +30,7 @@
             static type
             call(It it)
             {
-                return deref_data(it.first);
+                return fusion::deref_data(it.first);
             }
         };
     };
Modified: sandbox/SOC/2009/fusion/project-root.jam
==============================================================================
--- sandbox/SOC/2009/fusion/project-root.jam	(original)
+++ sandbox/SOC/2009/fusion/project-root.jam	2009-09-29 17:35:30 EDT (Tue, 29 Sep 2009)
@@ -24,4 +24,4 @@
 #build-project libs/fusion/doc ;
 #build-project libs/fusion/example/extension ;
 #build-project libs/fusion/example/performance ;
-build-project libs/fusion/test ;
\ No newline at end of file
+#build-project libs/fusion/test ;
\ No newline at end of file