$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r60667 - in sandbox/statistics/detail/assign/boost/assign/auto_size: array chain comparison_op detail
From: erwann.rogard_at_[hidden]
Date: 2010-03-16 20:28:05
Author: e_r
Date: 2010-03-16 20:28:04 EDT (Tue, 16 Mar 2010)
New Revision: 60667
URL: http://svn.boost.org/trac/boost/changeset/60667
Log:
m
Text files modified: 
   sandbox/statistics/detail/assign/boost/assign/auto_size/array/interface.hpp                |     4 ----                                    
   sandbox/statistics/detail/assign/boost/assign/auto_size/array/lazy.hpp                     |     9 ++++++---                               
   sandbox/statistics/detail/assign/boost/assign/auto_size/chain/chain_convert.hpp            |     6 ++++++                                  
   sandbox/statistics/detail/assign/boost/assign/auto_size/chain/conversion_traits.hpp        |    10 ++++++++++                              
   sandbox/statistics/detail/assign/boost/assign/auto_size/chain/convert_iterator.hpp         |     2 ++                                      
   sandbox/statistics/detail/assign/boost/assign/auto_size/chain/inner_value_traits.hpp       |    10 +++++++++-                              
   sandbox/statistics/detail/assign/boost/assign/auto_size/chain/pair_traits.hpp              |     5 +++--                                   
   sandbox/statistics/detail/assign/boost/assign/auto_size/chain/reference_traits.hpp         |     4 ++--                                    
   sandbox/statistics/detail/assign/boost/assign/auto_size/comparison_op/completed_policy.hpp |     1 +                                       
   sandbox/statistics/detail/assign/boost/assign/auto_size/comparison_op/range.hpp            |     2 +-                                      
   sandbox/statistics/detail/assign/boost/assign/auto_size/detail/expr.hpp                    |     3 ++-                                     
   11 files changed, 42 insertions(+), 14 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-16 20:28:04 EDT (Tue, 16 Mar 2010)
@@ -54,10 +54,6 @@
             array_interface<T,N,R,D>,
             typename array_interface_traits<T,N,R>::const_iterator 
         > 
-//        assign_detail::converter<
-//    	    array_interface<T,N,R,D>,
-//            typename array_interface_traits<T,N,R>::const_iterator
-//        >
     {
         typedef array_interface_traits<T,N,R> traits;
         typedef typename traits::ref_ ref_;
Modified: sandbox/statistics/detail/assign/boost/assign/auto_size/array/lazy.hpp
==============================================================================
--- sandbox/statistics/detail/assign/boost/assign/auto_size/array/lazy.hpp	(original)
+++ sandbox/statistics/detail/assign/boost/assign/auto_size/array/lazy.hpp	2010-03-16 20:28:04 EDT (Tue, 16 Mar 2010)
@@ -44,9 +44,12 @@
             template<typename> class R,typename P,bool F>
     void write_to_array(A& a,const expr<E,T,N,R,P,F>& e);
                   
-    // lazy_array is a suitable policy for auto_size::expr<>, that has the 
-    // functionality of array_interface<>, and postones allocation until it is 
-    // necessary.
+   // Postones allocation until it is necessary.
+   // D must interoperate with write_to_array.
+   //
+   // D is typically the result of nested compile time expressions each contain-
+   // ing a reference. Only the last of these expression needs to expose an 
+   // friendly interface, hence 'lazy_array'.
    template<typename T,int N,template<typename> class R,typename D>
    class lazy_array 
             : public array_interface<T,N,R,lazy_array<T,N,R,D> >
Modified: sandbox/statistics/detail/assign/boost/assign/auto_size/chain/chain_convert.hpp
==============================================================================
--- sandbox/statistics/detail/assign/boost/assign/auto_size/chain/chain_convert.hpp	(original)
+++ sandbox/statistics/detail/assign/boost/assign/auto_size/chain/chain_convert.hpp	2010-03-16 20:28:04 EDT (Tue, 16 Mar 2010)
@@ -24,6 +24,12 @@
 // http://gist.github.com/287791
 // developed by MPG.
 
+// Usage:
+// Let r1, r2, r3 denote lvalue ranges:
+//    chain_convert_l(r1)(r2)(r3)
+// If either of the 3 is an rvalue,
+//    chain_convert_r(r1)(r2)(r3)
+
 namespace adaptor{
 
 namespace impl{
Modified: sandbox/statistics/detail/assign/boost/assign/auto_size/chain/conversion_traits.hpp
==============================================================================
--- sandbox/statistics/detail/assign/boost/assign/auto_size/chain/conversion_traits.hpp	(original)
+++ sandbox/statistics/detail/assign/boost/assign/auto_size/chain/conversion_traits.hpp	2010-03-16 20:28:04 EDT (Tue, 16 Mar 2010)
@@ -16,6 +16,16 @@
 namespace assign{
 namespace detail{
 
+// A type T is mapped to a convertible type U in two steps:
+// 1) Tag = tag_of<T>
+// 2) U = meta::convert_to<Tag>::apply<T>
+// This approach is useful to group types that share the same  conversion rule. 
+// This file defines two groups:
+//          Tag                             U                   
+//  - 'itself' (the default)                T
+//  - 'reference_to_inner_value'    inner_value<T>&
+// but the use can also define his/her own as needed.
+
 namespace conversion_traits{
 
     namespace tag{ 
Modified: sandbox/statistics/detail/assign/boost/assign/auto_size/chain/convert_iterator.hpp
==============================================================================
--- sandbox/statistics/detail/assign/boost/assign/auto_size/chain/convert_iterator.hpp	(original)
+++ sandbox/statistics/detail/assign/boost/assign/auto_size/chain/convert_iterator.hpp	2010-03-16 20:28:04 EDT (Tue, 16 Mar 2010)
@@ -17,6 +17,8 @@
 namespace assign{
 namespace detail{
 
+// Maps an iterator I ot J such that *J = T(*I).
+
 template<typename I,typename T>
 struct iterator_converter : boost::iterator_adaptor<
     detail::iterator_converter<I,T>             // Derived
Modified: sandbox/statistics/detail/assign/boost/assign/auto_size/chain/inner_value_traits.hpp
==============================================================================
--- sandbox/statistics/detail/assign/boost/assign/auto_size/chain/inner_value_traits.hpp	(original)
+++ sandbox/statistics/detail/assign/boost/assign/auto_size/chain/inner_value_traits.hpp	2010-03-16 20:28:04 EDT (Tue, 16 Mar 2010)
@@ -12,9 +12,17 @@
 namespace boost{
 namespace assign{
 namespace detail{
-
 namespace inner_value_traits{
 
+// A type T is mapped to a an 'inner_value', U, in two steps:
+// 1) Tag = tag_of<T>
+// 2) U = meta::inner_value<Tag>::apply<T>::type
+// This approach is useful to define a group (Tag) of types that shares the same
+// property. This file defines one group
+//          Tag               T            U       
+//  nested_parameter         W<V>          V
+// but the use can also define his/her own as needed.
+
     namespace tag{ 
         struct nested_parameter{ typedef nested_parameter type; }; 
     }// tag
Modified: sandbox/statistics/detail/assign/boost/assign/auto_size/chain/pair_traits.hpp
==============================================================================
--- sandbox/statistics/detail/assign/boost/assign/auto_size/chain/pair_traits.hpp	(original)
+++ sandbox/statistics/detail/assign/boost/assign/auto_size/chain/pair_traits.hpp	2010-03-16 20:28:04 EDT (Tue, 16 Mar 2010)
@@ -20,8 +20,9 @@
 #include <boost/assign/auto_size/chain/conversion_traits.hpp>
 #include <boost/assign/auto_size/chain/reference_traits.hpp>
 
-// Maps (T,U) to a type that both are convertible to. In particular, T and U
-// may be reference wrappers.
+// Maps (T,U) to (convert_to<T>::type, convert_to<U>::type) and the latter
+// to type that is convertible to by both.
+
 
 namespace boost{
 namespace assign{
Modified: sandbox/statistics/detail/assign/boost/assign/auto_size/chain/reference_traits.hpp
==============================================================================
--- sandbox/statistics/detail/assign/boost/assign/auto_size/chain/reference_traits.hpp	(original)
+++ sandbox/statistics/detail/assign/boost/assign/auto_size/chain/reference_traits.hpp	2010-03-16 20:28:04 EDT (Tue, 16 Mar 2010)
@@ -20,8 +20,8 @@
 
 #include <boost/assign/auto_size/chain/conversion_traits.hpp>
 
-// Let T = U or U&, and U = V or const V. Maps T to a convertible type using the
-// information provided by the conversion traits
+// Maps U = T& (or possibly U=T) to a type that is convertible to based on the
+// conversion traits.
 
 namespace boost{
 namespace assign{
Modified: sandbox/statistics/detail/assign/boost/assign/auto_size/comparison_op/completed_policy.hpp
==============================================================================
--- sandbox/statistics/detail/assign/boost/assign/auto_size/comparison_op/completed_policy.hpp	(original)
+++ sandbox/statistics/detail/assign/boost/assign/auto_size/comparison_op/completed_policy.hpp	2010-03-16 20:28:04 EDT (Tue, 16 Mar 2010)
@@ -22,6 +22,7 @@
     //     Q::greater(l,r)
     //     Q::less_equal(l,r)
     //     Q::greater_equal(l,r)
+    // using their logical relationships.
     template<typename P>
     struct completed_policy : P{
         template<typename L,typename R>
Modified: sandbox/statistics/detail/assign/boost/assign/auto_size/comparison_op/range.hpp
==============================================================================
--- sandbox/statistics/detail/assign/boost/assign/auto_size/comparison_op/range.hpp	(original)
+++ sandbox/statistics/detail/assign/boost/assign/auto_size/comparison_op/range.hpp	2010-03-16 20:28:04 EDT (Tue, 16 Mar 2010)
@@ -23,7 +23,7 @@
     // Expression      Returns
     //   l == r        ::boost::iterator_range_detail::equal( l, r )
     //   l < r         ::boost::iterator_range_detail::less_than( l, r );
-    // The remaining operators, !=, >,<=,>= are defined using their
+    // The remaining operators, !=, >,<=,>= are defined using their 
     // relationships to the two fundamental ones.
     struct fundamental_policy{
     
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-16 20:28:04 EDT (Tue, 16 Mar 2010)
@@ -44,7 +44,8 @@
 // with M.P.G
 //
 // range<int>() is provided to achieve conformity with the rest of Boost.Assign
-// but it is in fact ill suited here. 
+// but it is in fact ill suited here. See chain_convert_l() and 
+// chain_convert_r() as an alternative.
 
 namespace boost{
 namespace assign{