$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r60187 - in sandbox/statistics/detail/assign/boost/assign/auto_size: array detail
From: erwann.rogard_at_[hidden]
Date: 2010-03-05 09:25:24
Author: e_r
Date: 2010-03-05 09:25:23 EST (Fri, 05 Mar 2010)
New Revision: 60187
URL: http://svn.boost.org/trac/boost/changeset/60187
Log:
m
Text files modified: 
   sandbox/statistics/detail/assign/boost/assign/auto_size/array/interface.hpp |     5 +++++                                   
   sandbox/statistics/detail/assign/boost/assign/auto_size/detail/expr.hpp     |    26 ++++++++++++++++++++++++--              
   2 files changed, 29 insertions(+), 2 deletions(-)
Modified: sandbox/statistics/detail/assign/boost/assign/auto_size/array/interface.hpp
==============================================================================
--- sandbox/statistics/detail/assign/boost/assign/auto_size/array/interface.hpp	(original)
+++ sandbox/statistics/detail/assign/boost/assign/auto_size/array/interface.hpp	2010-03-05 09:25:23 EST (Fri, 05 Mar 2010)
@@ -32,6 +32,9 @@
         typedef typename Ref<T>::type ref_;
         typedef typename ref_array<T,N,Ref>::type ref_array_;
 
+
+		// ---- boost::array ---- //
+
         typedef ref_ value_type;
         typedef typename 
                 boost::range_iterator<ref_array_>::type iterator;
@@ -88,6 +91,8 @@
             return this->assign(val,pred_());
         }
 
+		// ---- Conversion ---- //
+
         template<typename T1>
         operator boost::array<T1,N>()const{
             boost::array<T1,N> ar;
Modified: sandbox/statistics/detail/assign/boost/assign/auto_size/detail/expr.hpp
==============================================================================
--- sandbox/statistics/detail/assign/boost/assign/auto_size/detail/expr.hpp	(original)
+++ sandbox/statistics/detail/assign/boost/assign/auto_size/detail/expr.hpp	2010-03-05 09:25:23 EST (Fri, 05 Mar 2010)
@@ -79,14 +79,36 @@
         typedef typename next<expr>::type result_type;
 
         expr(const E& p,T& t):previous(p),ref(t){} 
-        result_type operator()(T& t)const{ return result_type(*this,t); }
-
         template<typename E1>
         expr(const E1& that)
             :super_(that)
             ,previous(that.previous)
             ,ref(that.ref){}
 
+        result_type operator()(T& t)const{ return result_type(*this,t); }
+
+        template< class ForwardIterator >
+        expr& range( ForwardIterator first, 
+                                    ForwardIterator last )
+        {
+            for( ; first != last; ++first )
+                (*this)( *first );
+            return *this;
+        }
+
+        template< class ForwardRange >
+        expr& range( ForwardRange& r )
+        {
+            return this->range( boost::begin(r), boost::end(r) );
+        }
+
+        template< class ForwardRange >
+        expr& range( const ForwardRange& r )
+        {
+            return this->range( boost::begin(r), boost::end(r) );
+        }
+
+
 
         mutable previous_ previous;
         mutable ref_ ref;