$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r67541 - in trunk: boost/range boost/range/adaptor boost/range/detail libs/range/doc libs/range/doc/html libs/range/doc/html/range libs/range/doc/html/range/concepts libs/range/doc/html/range/reference libs/range/doc/html/range/reference/adaptors libs/range/doc/html/range/reference/adaptors/reference libs/range/doc/html/range/reference/algorithms/heap libs/range/doc/html/range/reference/algorithms/mutating libs/range/doc/html/range/reference/algorithms/new libs/range/doc/html/range/reference/algorithms/non_mutating libs/range/doc/html/range/reference/algorithms/numeric libs/range/doc/html/range/reference/algorithms/permutation libs/range/doc/html/range/reference/algorithms/set libs/range/doc/html/range/reference/concept_implementation libs/range/doc/html/range/reference/ranges libs/range/doc/html/range/reference/utilities libs/range/doc/reference libs/range/doc/reference/adaptors libs/range/doc/reference/ranges libs/range/test libs/range/test/adaptor_test
From: neil_at_[hidden]
Date: 2011-01-01 11:46:44
Author: neilgroves
Date: 2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
New Revision: 67541
URL: http://svn.boost.org/trac/boost/changeset/67541
Log:
[boost][range] - Updated begin/end to be protected against accidental ADL to improve compatibility with C++0x. Added any_range which adds type erasure support. Added a type_erased adaptor to utilise the any_range. Implemented the any_iterator using a small buffer optimization to avoid heap usage.
Added:
   trunk/boost/range/any_range.hpp   (contents, props changed)
   trunk/boost/range/detail/any_iterator.hpp   (contents, props changed)
   trunk/boost/range/detail/any_iterator_buffer.hpp   (contents, props changed)
   trunk/boost/range/detail/any_iterator_interface.hpp   (contents, props changed)
   trunk/boost/range/detail/any_iterator_wrapper.hpp   (contents, props changed)
   trunk/libs/range/doc/html/range/reference/adaptors/reference/type_erased.html   (contents, props changed)
   trunk/libs/range/doc/html/range/reference/ranges/any_range.html   (contents, props changed)
   trunk/libs/range/doc/reference/adaptors/type_erased.qbk   (contents, props changed)
   trunk/libs/range/doc/reference/ranges/any_range.qbk   (contents, props changed)
   trunk/libs/range/test/adaptor_test/type_erased.cpp   (contents, props changed)
   trunk/libs/range/test/adaptor_test/type_erased_example.cpp   (contents, props changed)
   trunk/libs/range/test/begin.cpp   (contents, props changed)
   trunk/libs/range/test/end.cpp   (contents, props changed)
Text files modified: 
   trunk/boost/range/adaptor/sliced.hpp                                                           |     1                                         
   trunk/boost/range/adaptor/type_erased.hpp                                                      |   210 ++++++++++++++++++++++++++++----------- 
   trunk/boost/range/begin.hpp                                                                    |    23 +++-                                    
   trunk/boost/range/concepts.hpp                                                                 |    23 +++                                     
   trunk/boost/range/detail/begin.hpp                                                             |    28 ++--                                    
   trunk/boost/range/detail/end.hpp                                                               |    37 +++---                                  
   trunk/boost/range/end.hpp                                                                      |    23 ++-                                     
   trunk/libs/range/doc/boost_range.qbk                                                           |     2                                         
   trunk/libs/range/doc/html/index.html                                                           |     5                                         
   trunk/libs/range/doc/html/quickbook_HTML.manifest                                              |     2                                         
   trunk/libs/range/doc/html/range/concepts/bidirectional_range.html                              |    16 +-                                      
   trunk/libs/range/doc/html/range/concepts/concept_checking.html                                 |     2                                         
   trunk/libs/range/doc/html/range/concepts/forward_range.html                                    |    10                                         
   trunk/libs/range/doc/html/range/concepts/random_access_range.html                              |    12 +-                                      
   trunk/libs/range/doc/html/range/concepts/single_pass_range.html                                |    16 +-                                      
   trunk/libs/range/doc/html/range/history_ack.html                                               |     4                                         
   trunk/libs/range/doc/html/range/introduction.html                                              |     6                                         
   trunk/libs/range/doc/html/range/mfc_atl.html                                                   |     4                                         
   trunk/libs/range/doc/html/range/reference.html                                                 |     1                                         
   trunk/libs/range/doc/html/range/reference/adaptors/introduction.html                           |     6                                         
   trunk/libs/range/doc/html/range/reference/adaptors/reference.html                              |     1                                         
   trunk/libs/range/doc/html/range/reference/adaptors/reference/strided.html                      |     6                                         
   trunk/libs/range/doc/html/range/reference/adaptors/reference/tokenized.html                    |     6                                         
   trunk/libs/range/doc/html/range/reference/algorithms/heap/make_heap.html                       |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/heap/pop_heap.html                        |    12 +-                                      
   trunk/libs/range/doc/html/range/reference/algorithms/heap/push_heap.html                       |    12 +-                                      
   trunk/libs/range/doc/html/range/reference/algorithms/heap/sort_heap.html                       |    12 +-                                      
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/copy.html                        |    12 +-                                      
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/copy_backward.html               |    12 +-                                      
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/fill.html                        |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/fill_n.html                      |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/generate.html                    |    12 +-                                      
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/inplace_merge.html               |    16 +-                                      
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/merge.html                       |    16 +-                                      
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/nth_element.html                 |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/partial_sort.html                |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/partition.html                   |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/random_shuffle.html              |    12 +-                                      
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/remove.html                      |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/remove_copy.html                 |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/remove_copy_if.html              |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/remove_if.html                   |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/replace.html                     |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/replace_copy.html                |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/replace_copy_if.html             |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/replace_if.html                  |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/reverse.html                     |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/reverse_copy.html                |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/rotate.html                      |    12 +-                                      
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/rotate_copy.html                 |    12 +-                                      
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/sort.html                        |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/stable_partition.html            |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/stable_sort.html                 |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/swap_ranges.html                 |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/transform.html                   |    12 +-                                      
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/unique.html                      |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/mutating/unique_copy.html                 |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/new/copy_n.html                           |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/new/erase.html                            |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/new/for_each.html                         |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/new/insert.html                           |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/new/iota.html                             |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/new/is_sorted.html                        |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/new/overwrite.html                        |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/new/push_back.html                        |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/new/push_front.html                       |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/new/remove_erase.html                     |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/new/remove_erase_if.html                  |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/adjacent_find.html           |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/binary_search.html           |    12 +-                                      
   trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/count.html                   |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/count_if.html                |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/equal.html                   |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/equal_range.html             |    12 +-                                      
   trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/find.html                    |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/find_end.html                |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/find_first_of.html           |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/find_if.html                 |    12 +-                                      
   trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/for_each.html                |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/lexicographical_compare.html |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/lower_bound.html             |    12 +-                                      
   trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/max_element.html             |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/min_element.html             |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/mismatch.html                |    12 +-                                      
   trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/search.html                  |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/search_n.html                |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/upper_bound.html             |    12 +-                                      
   trunk/libs/range/doc/html/range/reference/algorithms/numeric/accumulate.html                   |    14 +-                                      
   trunk/libs/range/doc/html/range/reference/algorithms/numeric/adjacent_difference.html          |    16 +-                                      
   trunk/libs/range/doc/html/range/reference/algorithms/numeric/inner_product.html                |    16 +-                                      
   trunk/libs/range/doc/html/range/reference/algorithms/numeric/partial_sum.html                  |    16 +-                                      
   trunk/libs/range/doc/html/range/reference/algorithms/permutation/next_permutation.html         |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/permutation/prev_permutation.html         |    10                                         
   trunk/libs/range/doc/html/range/reference/algorithms/set/includes.html                         |    12 +-                                      
   trunk/libs/range/doc/html/range/reference/algorithms/set/set_difference.html                   |    12 +-                                      
   trunk/libs/range/doc/html/range/reference/algorithms/set/set_intersection.html                 |    12 +-                                      
   trunk/libs/range/doc/html/range/reference/algorithms/set/set_symmetric_difference.html         |    12 +-                                      
   trunk/libs/range/doc/html/range/reference/algorithms/set/set_union.html                        |    12 +-                                      
   trunk/libs/range/doc/html/range/reference/concept_implementation/semantics.html                |     2                                         
   trunk/libs/range/doc/html/range/reference/ranges.html                                          |     7                                         
   trunk/libs/range/doc/html/range/reference/ranges/counting_range.html                           |    14 +-                                      
   trunk/libs/range/doc/html/range/reference/ranges/irange.html                                   |    10                                         
   trunk/libs/range/doc/html/range/reference/ranges/istream_range.html                            |     6                                         
   trunk/libs/range/doc/html/range/reference/utilities/iterator_range.html                        |     6                                         
   trunk/libs/range/doc/html/range/reference/utilities/join.html                                  |     4                                         
   trunk/libs/range/doc/html/range/reference/utilities/sub_range.html                             |     2                                         
   trunk/libs/range/doc/reference/adaptors.qbk                                                    |     1                                         
   trunk/libs/range/doc/reference/ranges.qbk                                                      |     1                                         
   trunk/libs/range/test/Jamfile.v2                                                               |     4                                         
   109 files changed, 737 insertions(+), 590 deletions(-)
Modified: trunk/boost/range/adaptor/sliced.hpp
==============================================================================
--- trunk/boost/range/adaptor/sliced.hpp	(original)
+++ trunk/boost/range/adaptor/sliced.hpp	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -76,6 +76,7 @@
         }
 
     } // namespace adaptors
+    using adaptors::sliced_range;
 } // namespace boost
 
 #endif
Modified: trunk/boost/range/adaptor/type_erased.hpp
==============================================================================
--- trunk/boost/range/adaptor/type_erased.hpp	(original)
+++ trunk/boost/range/adaptor/type_erased.hpp	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -1,6 +1,6 @@
 // Boost.Range library
 //
-//  Copyright Thorsten Ottosen, Neil Groves 2006 - 2008. Use, modification and
+//  Copyright Neil Groves 2010. Use, modification and
 //  distribution is subject to 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)
@@ -10,79 +10,173 @@
 #ifndef BOOST_RANGE_ADAPTOR_TYPE_ERASED_HPP_INCLUDED
 #define BOOST_RANGE_ADAPTOR_TYPE_ERASED_HPP_INCLUDED
 
-#include <boost/iterator/iterator_facade.hpp>
-#include <boost/range/range_reference.hpp>
-#include <boost/range/range_value.hpp>
+#include <boost/range/reference.hpp>
+#include <boost/range/value_type.hpp>
+#include <boost/range/iterator_range_core.hpp>
+#include <boost/range/any_range.hpp>
+#include <boost/cast.hpp>
 
 namespace boost
 {
-    namespace range_detail
+    namespace adaptors
     {
         template<
-            class Value,
-            class CategoryOrTraversal,
-            class Reference,
-            class Difference
-            >
-        class any_range
-            : public iterator_range<
-                        IteratorTypeErasure::any_iterator<
-                            Value, CategoryOrTraversal, Reference, Difference> >
+            class Value = use_default
+          , class Traversal = use_default
+          , class Reference = use_default
+          , class Difference = use_default
+          , class Buffer = use_default
+        >
+        struct type_erased
         {
-            typedef typename IteratorTypeErasure::any_iterator<
-                Value, CategoryOrTraversal, Reference, Difference> iterator_t;
-
-            typedef iterator_range<iterator_t> base_t;
-        public:
-            template<class Range>
-            explicit any_range(Range& r) : base_t(r) {}
-
-            template<class Range>
-            explicit any_range(const Range& r) : base_t(r) {}
         };
 
-            template<class Range>
-            class any_range_generator
-            {
-            public:
-                typedef any_range<
-                            BOOST_DEDUCED_TYPENAME range_value<Range>::type,
-                            BOOST_DEDUCED_TYPENAME iterator_traversal<
-                                BOOST_DEDUCED_TYPENAME range_iterator<Range>::type
-                            >::type,
-                            BOOST_DEDUCED_TYPENAME range_reference<Range>::type,
-                            BOOST_DEDUCED_TYPENAME range_difference<Range>::type
-                        > type;
-            };
-
-            class type_erased_tag {};
-
-
-    } // namespace range_detail
-
-    using range_detail::any_range;
+        template<
+            class SinglePassRange
+          , class Value
+          , class Traversal
+          , class Reference
+          , class Difference
+          , class Buffer
+        >
+        typename any_range_type_generator<
+            SinglePassRange
+          , Value
+          , Traversal
+          , Reference
+          , Difference
+          , Buffer
+        >::type
+        operator|(SinglePassRange& rng,
+                  type_erased<
+                        Value
+                      , Traversal
+                      , Reference
+                      , Difference
+                      , Buffer
+                    >)
+        {
+            typedef typename any_range_type_generator<
+                SinglePassRange
+              , Value
+              , Traversal
+              , Reference
+              , Difference
+              , Buffer
+            >::type range_type;
+            return range_type(boost::begin(rng), boost::end(rng));
+        }
 
-    namespace adaptors
-    {
-        namespace
+        template<
+            class SinglePassRange
+          , class Value
+          , class Traversal
+          , class Reference
+          , class Difference
+          , class Buffer
+        >
+        typename any_range_type_generator<
+            const SinglePassRange
+          , Value
+          , Traversal
+          , Reference
+          , Difference
+          , Buffer
+        >::type
+        operator|(const SinglePassRange& rng,
+                  type_erased<
+                            Value
+                          , Traversal
+                          , Reference
+                          , Difference
+                          , Buffer
+                    >)
         {
-            const range_detail::type_erased_tag type_erased = range_detail::type_erased_tag();
+            typedef typename any_range_type_generator<
+                const SinglePassRange
+              , Value
+              , Traversal
+              , Reference
+              , Difference
+              , Buffer
+            >::type range_type;
+            return range_type(boost::begin(rng), boost::end(rng));
         }
 
-        template<class SinglePassRange>
-        typename range_detail::any_range_generator<SinglePassRange>::type
-        operator|(SinglePassRange& rng, range_detail::type_erased_tag)
+        template<
+            class SinglePassRange
+          , class Value
+          , class Traversal
+          , class Reference
+          , class Difference
+          , class Buffer
+        >
+        typename any_range_type_generator<
+            SinglePassRange
+          , Value
+          , Traversal
+          , Reference
+          , Difference
+          , Buffer
+        >::type
+        type_erase(SinglePassRange& rng
+                 , type_erased<
+                            Value
+                          , Traversal
+                          , Reference
+                          , Difference
+                          , Buffer
+                    > = type_erased<>()
+                )
         {
-            typedef typename range_detail::any_range_generator<SinglePassRange>::type range_t;
-            return range_t(rng);
+            typedef typename any_range_type_generator<
+                SinglePassRange
+              , Value
+              , Traversal
+              , Reference
+              , Difference
+              , Buffer
+            >::type range_type;
+
+            return range_type(boost::begin(rng), boost::end(rng));
         }
 
-        template<class SinglePassRange>
-        typename range_detail::any_range_generator<const SinglePassRange>::type
-        operator|(const SinglePassRange& rng, range_detail::type_erased_tag)
+        template<
+            class SinglePassRange
+          , class Value
+          , class Traversal
+          , class Reference
+          , class Difference
+          , class Buffer
+        >
+        typename any_range_type_generator<
+            const SinglePassRange
+          , Value
+          , Traversal
+          , Reference
+          , Difference
+          , Buffer
+        >::type
+        type_erase(const SinglePassRange& rng
+                 , type_erased<
+                            Value
+                          , Traversal
+                          , Reference
+                          , Difference
+                          , Buffer
+                    > = type_erased<>()
+                )
         {
-            typedef typename range_detail::any_range_generator<const SinglePassRange>::type range_t;
-            return range_t(rng);
+            typedef typename any_range_type_generator<
+                const SinglePassRange
+              , Value
+              , Traversal
+              , Reference
+              , Difference
+              , Buffer
+            >::type range_type;
+
+            return range_type(boost::begin(rng), boost::end(rng));
         }
     }
 } // namespace boost
Added: trunk/boost/range/any_range.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/range/any_range.hpp	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -0,0 +1,204 @@
+//  Copyright Neil Groves 2010. Use, modification and
+//  distribution is subject to 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)
+//
+//
+// For more information, see http://www.boost.org/libs/range/
+//
+#ifndef BOOST_RANGE_ANY_RANGE_HPP_INCLUDED
+#define BOOST_RANGE_ANY_RANGE_HPP_INCLUDED
+
+#include <boost/config.hpp>
+#include <boost/iterator/iterator_categories.hpp>
+#include <boost/iterator/iterator_traits.hpp>
+#include <boost/iterator/iterator_facade.hpp>
+#include <boost/iterator/iterator_adaptor.hpp>
+#include <boost/range/detail/any_iterator.hpp>
+#include <boost/range/reference.hpp>
+#include <boost/range/value_type.hpp>
+#include <boost/range/iterator_range_core.hpp>
+#include <boost/cast.hpp>
+
+namespace boost
+{
+    namespace range_detail
+    {
+        // If T is use_default, return the result of Default, otherwise
+        // return T.
+        //
+        // This is an implementation artifact used to pick intelligent default
+        // values when the user specified boost::use_default as a template
+        // parameter.
+        template<
+            class T,
+            class Default
+        >
+        struct any_range_default_help
+            : mpl::eval_if<
+                is_same<T, use_default>
+              , Default
+              , mpl::identity<T>
+            >
+        {
+        };
+
+        template<
+            class WrappedRange
+          , class Value
+          , class Reference
+        >
+        struct any_range_value_type
+        {
+# ifdef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY
+            typedef typename any_range_default_help<
+                    Value
+                  , mpl::eval_if<
+                        is_same<Reference, use_default>
+                      , range_value<
+                            typename remove_const<WrappedRange>
+                        ::type>
+                      , remove_reference<Reference>
+                    >
+                >::type type;
+# else
+            typedef typename any_range_default_help<
+                Value
+              , range_value<
+                    typename remove_const<WrappedRange>
+                ::type>
+            >::type type;
+# endif
+        };
+
+        template<
+            class Value
+          , class Traversal
+          , class Reference
+          , class Difference
+          , class Buffer = use_default
+        >
+        class any_range
+            : public iterator_range<
+                        any_iterator<
+                            Value
+                          , Traversal
+                          , Reference
+                          , Difference
+                          , typename any_range_default_help<
+                                Buffer
+                              , mpl::identity<any_iterator_default_buffer>
+                            >::type
+                        >
+                    >
+        {
+            typedef iterator_range<
+                        any_iterator<
+                            Value
+                          , Traversal
+                          , Reference
+                          , Difference
+                          , typename any_range_default_help<
+                                Buffer
+                              , mpl::identity<any_iterator_default_buffer>
+                            >::type
+                        >
+                    > base_type;
+
+            struct enabler {};
+            struct disabler {};
+        public:
+            any_range()
+            {
+            }
+
+            any_range(const any_range& other)
+                : base_type(other)
+            {
+            }
+
+            template<class WrappedRange>
+            any_range(WrappedRange& wrapped_range)
+            : base_type(boost::begin(wrapped_range),
+                        boost::end(wrapped_range))
+            {
+            }
+
+            template<class WrappedRange>
+            any_range(const WrappedRange& wrapped_range)
+            : base_type(boost::begin(wrapped_range),
+                        boost::end(wrapped_range))
+            {
+            }
+
+            template<
+                class OtherValue
+              , class OtherTraversal
+              , class OtherReference
+              , class OtherDifference
+            >
+            any_range(const any_range<
+                                OtherValue
+                              , OtherTraversal
+                              , OtherReference
+                              , OtherDifference
+                              , Buffer
+                            >& other)
+            : base_type(boost::begin(other), boost::end(other))
+            {
+            }
+
+            template<class Iterator>
+            any_range(Iterator first, Iterator last)
+                : base_type(first, last)
+            {
+            }
+        };
+
+        template<
+            class WrappedRange
+          , class Value = use_default
+          , class Traversal = use_default
+          , class Reference = use_default
+          , class Difference = use_default
+          , class Buffer = use_default
+        >
+        struct any_range_type_generator
+        {
+            BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept<WrappedRange> ));
+            typedef any_range<
+                typename any_range_value_type<
+                    WrappedRange
+                  , Value
+                  , typename any_range_default_help<
+                        Reference
+                      , range_reference<WrappedRange>
+                    >::type
+                >::type
+              , typename any_range_default_help<
+                            Traversal
+                          , iterator_traversal<
+                                typename range_iterator<WrappedRange>::type
+                            >
+                        >::type
+              , typename any_range_default_help<
+                    Reference
+                  , range_reference<WrappedRange>
+                >::type
+              , typename any_range_default_help<
+                    Difference
+                  , range_difference<WrappedRange>
+                >::type
+              , typename any_range_default_help<
+                    Buffer
+                  , mpl::identity<any_iterator_default_buffer>
+                >::type
+            > type;
+        };
+    } // namespace range_detail
+
+    using range_detail::any_range;
+    using range_detail::any_range_type_generator;
+} // namespace boost
+
+#endif // include guard
Modified: trunk/boost/range/begin.hpp
==============================================================================
--- trunk/boost/range/begin.hpp	(original)
+++ trunk/boost/range/begin.hpp	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -91,6 +91,11 @@
 } // namespace 'range_detail'
 #endif
 
+// Use a ADL namespace barrier to avoid ambiguity with other unqualified
+// calls. This is particularly important with C++0x encouraging
+// unqualified calls to begin/end.
+namespace range_adl_barrier
+{
 
 template< class T >
 inline BOOST_DEDUCED_TYPENAME range_iterator<T>::type begin( T& r )
@@ -114,19 +119,25 @@
     return range_begin( r );
 }
 
+    } // namespace range_adl_barrier
 } // namespace boost
 
 #endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
 
 namespace boost
 {
-    template< class T >
-    inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type
-    const_begin( const T& r )
+    namespace range_adl_barrier
     {
-        return boost::begin( r );
-    }
-}
+        template< class T >
+        inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type
+        const_begin( const T& r )
+        {
+            return boost::range_adl_barrier::begin( r );
+        }
+    } // namespace range_adl_barrier
+
+    using namespace range_adl_barrier;
+} // namespace boost
 
 #endif
 
Modified: trunk/boost/range/concepts.hpp
==============================================================================
--- trunk/boost/range/concepts.hpp	(original)
+++ trunk/boost/range/concepts.hpp	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -148,13 +148,16 @@
                 Iterator i2(++i);
                 boost::ignore_unused_variable_warning(i2);
 
-                Iterator i3(i++);
-                boost::ignore_unused_variable_warning(i3);
+                // deliberately we are loose with the postfix version for the single pass
+                // iterator due to the commonly poor adherence to the specification means that
+                // many algorithms would be unusable, whereas actually without the check they
+                // work
+                (void)(i++);
 
                 BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::reference r1(*i);
                 boost::ignore_unused_variable_warning(r1);
 
-                BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::reference r2(*i++);
+                BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::reference r2(*(++i));
                 boost::ignore_unused_variable_warning(r2);
             }
         private:
@@ -178,6 +181,20 @@
                     BOOST_DEDUCED_TYPENAME ForwardIteratorConcept::traversal_category,
                     forward_traversal_tag
                 >));
+
+            BOOST_CONCEPT_USAGE(ForwardIteratorConcept)
+            {
+                // See the above note in the SinglePassIteratorConcept about the handling of the
+                // postfix increment. Since with forward and better iterators there is no need
+                // for a proxy, we can sensibly require that the dereference result
+                // is convertible to reference.
+                Iterator i2(i++);
+                boost::ignore_unused_variable_warning(i2);
+                BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::reference r(*(i++));
+                boost::ignore_unused_variable_warning(r);
+            }
+        private:
+            Iterator i;
 #endif
          };
 
Added: trunk/boost/range/detail/any_iterator.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/range/detail/any_iterator.hpp	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -0,0 +1,587 @@
+// Boost.Range library
+//
+//  Copyright Neil Groves 2010. Use, modification and
+//  distribution is subject to 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)
+//
+// For more information, see http://www.boost.org/libs/range/
+//
+#ifndef BOOST_RANGE_DETAIL_ANY_ITERATOR_HPP_INCLUDED
+#define BOOST_RANGE_DETAIL_ANY_ITERATOR_HPP_INCLUDED
+
+#include <boost/cast.hpp>
+#include <boost/utility.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/mpl/or.hpp>
+#include <boost/mpl/not.hpp>
+#include <boost/type_traits/is_const.hpp>
+#include <boost/type_traits/is_reference.hpp>
+#include <boost/type_traits/remove_reference.hpp>
+#include <boost/range/detail/any_iterator_buffer.hpp>
+#include <boost/range/detail/any_iterator_interface.hpp>
+#include <boost/range/detail/any_iterator_wrapper.hpp>
+
+namespace boost
+{
+    namespace range_detail
+    {
+        // metafunction to determine if T is a const reference
+        template<class T>
+        struct is_const_reference
+        {
+            typedef typename mpl::and_<
+                typename is_reference<T>::type,
+                typename is_const<
+                    typename remove_reference<T>::type
+                >::type
+            >::type type;
+        };
+
+        // metafunction to determine if T is a mutable reference
+        template<class T>
+        struct is_mutable_reference
+        {
+            typedef typename mpl::and_<
+                typename is_reference<T>::type,
+                typename mpl::not_<
+                    typename is_const<
+                        typename remove_reference<T>::type
+                    >::type
+                >::type
+            >::type type;
+        };
+
+        // metafunction to evaluate if a source 'reference' can be
+        // converted to a target 'reference' as a value.
+        //
+        // This is true, when the target reference type is actually
+        // not a reference, and the source reference is convertible
+        // to the target type.
+        template<class SourceReference, class TargetReference>
+        struct is_convertible_to_value_as_reference
+        {
+            typedef typename mpl::and_<
+                typename mpl::not_<
+                    typename is_reference<TargetReference>::type
+                >::type
+              , typename is_convertible<
+                    SourceReference
+                  , TargetReference
+                >::type
+            >::type type;
+        };
+
+        template<
+            class Value
+          , class Traversal
+          , class Reference
+          , class Difference
+          , class Buffer = any_iterator_default_buffer
+        >
+        class any_iterator;
+
+        // metafunction to determine if SomeIterator is an
+        // any_iterator.
+        //
+        // This is the general implementation which evaluates to false.
+        template<class SomeIterator>
+        struct is_any_iterator
+            : mpl::bool_<false>
+        {
+        };
+
+        // specialization of is_any_iterator to return true for
+        // any_iterator classes regardless of template parameters.
+        template<
+            class Value
+          , class Traversal
+          , class Reference
+          , class Difference
+          , class Buffer
+        >
+        struct is_any_iterator<
+            any_iterator<
+                Value
+              , Traversal
+              , Reference
+              , Difference
+              , Buffer
+            >
+        >
+            : mpl::bool_<true>
+        {
+        };
+    } // namespace range_detail
+
+    namespace detail
+    {
+        // Rationale:
+        // These are specialized since the iterator_facade versions lack
+        // the requisite typedefs to allow wrapping to determine the types
+        // if a user copy constructs from a postfix increment.
+
+        template<
+            class Value
+          , class Traversal
+          , class Reference
+          , class Difference
+          , class Buffer
+        >
+        class postfix_increment_proxy<
+                    range_detail::any_iterator<
+                        Value
+                      , Traversal
+                      , Reference
+                      , Difference
+                      , Buffer
+                    >
+                >
+        {
+            typedef range_detail::any_iterator<
+                Value
+              , Traversal
+              , Reference
+              , Difference
+              , Buffer
+            > any_iterator_type;
+
+        public:
+            typedef Value value_type;
+            typedef typename std::iterator_traits<any_iterator_type>::iterator_category iterator_category;
+            typedef Difference difference_type;
+            typedef typename iterator_pointer<any_iterator_type>::type pointer;
+            typedef Reference reference;
+
+            explicit postfix_increment_proxy(any_iterator_type const& x)
+                : stored_value(*x)
+            {}
+
+            value_type&
+            operator*() const
+            {
+                return this->stored_value;
+            }
+        private:
+            mutable value_type stored_value;
+        };
+
+        template<
+            class Value
+          , class Traversal
+          , class Reference
+          , class Difference
+          , class Buffer
+        >
+        class writable_postfix_increment_proxy<
+                    range_detail::any_iterator<
+                        Value
+                      , Traversal
+                      , Reference
+                      , Difference
+                      , Buffer
+                    >
+                >
+        {
+            typedef range_detail::any_iterator<
+                        Value
+                      , Traversal
+                      , Reference
+                      , Difference
+                      , Buffer
+                    > any_iterator_type;
+         public:
+            typedef Value value_type;
+            typedef typename std::iterator_traits<any_iterator_type>::iterator_category iterator_category;
+            typedef Difference difference_type;
+            typedef typename iterator_pointer<any_iterator_type>::type pointer;
+            typedef Reference reference;
+
+            explicit writable_postfix_increment_proxy(any_iterator_type const& x)
+              : stored_value(*x)
+              , stored_iterator(x)
+            {}
+
+            // Dereferencing must return a proxy so that both *r++ = o and
+            // value_type(*r++) can work.  In this case, *r is the same as
+            // *r++, and the conversion operator below is used to ensure
+            // readability.
+            writable_postfix_increment_proxy const&
+            operator*() const
+            {
+                return *this;
+            }
+
+            // Provides readability of *r++
+            operator value_type&() const
+            {
+                return stored_value;
+            }
+
+            // Provides writability of *r++
+            template <class T>
+            T const& operator=(T const& x) const
+            {
+                *this->stored_iterator = x;
+                return x;
+            }
+
+            // This overload just in case only non-const objects are writable
+            template <class T>
+            T& operator=(T& x) const
+            {
+                *this->stored_iterator = x;
+                return x;
+            }
+
+            // Provides X(r++)
+            operator any_iterator_type const&() const
+            {
+                return stored_iterator;
+            }
+
+         private:
+            mutable value_type stored_value;
+            any_iterator_type stored_iterator;
+        };
+
+
+    }
+
+    namespace range_detail
+    {
+        template<
+            class Value
+          , class Traversal
+          , class Reference
+          , class Difference
+          , class Buffer
+        >
+        class any_iterator
+            : public iterator_facade<
+                        any_iterator<
+                            Value
+                          , Traversal
+                          , Reference
+                          , Difference
+                          , Buffer
+                        >
+                    , Value
+                    , Traversal
+                    , Reference
+                    , Difference
+                >
+        {
+            template<
+                class OtherValue
+              , class OtherTraversal
+              , class OtherReference
+              , class OtherDifference
+              , class OtherBuffer
+            >
+            friend class any_iterator;
+
+            struct enabler {};
+            struct disabler {};
+
+            typedef typename any_iterator_interface_type_generator<
+                Traversal
+              , Reference
+              , Difference
+              , Buffer
+            >::type abstract_base_type;
+
+            typedef iterator_facade<
+                        any_iterator<
+                            Value
+                          , Traversal
+                          , Reference
+                          , Difference
+                          , Buffer
+                        >
+                      , Value
+                      , Traversal
+                      , Reference
+                      , Difference
+                  > base_type;
+
+            typedef Buffer buffer_type;
+
+        public:
+            typedef typename base_type::value_type value_type;
+            typedef typename base_type::reference reference;
+            typedef typename base_type::difference_type difference_type;
+
+            // Default constructor
+            any_iterator()
+                : m_impl(0) {}
+
+            // Simple copy construction without conversion
+            any_iterator(const any_iterator& other)
+                : base_type(other)
+                , m_impl(other.m_impl
+                            ? other.m_impl->clone(m_buffer)
+                            : 0)
+            {
+            }
+
+            // Simple assignment operator without conversion
+            any_iterator& operator=(const any_iterator& other)
+            {
+                if (this != &other)
+                {
+                    if (m_impl)
+                        m_impl->~abstract_base_type();
+                    m_buffer.deallocate();
+                    m_impl = 0;
+                    if (other.m_impl)
+                        m_impl = other.m_impl->clone(m_buffer);
+                }
+                return *this;
+            }
+
+            // Implicit conversion from another any_iterator where the
+            // conversion is from a non-const reference to a const reference
+            template<
+                class OtherValue
+              , class OtherTraversal
+              , class OtherReference
+              , class OtherDifference
+            >
+            any_iterator(const any_iterator<
+                                OtherValue,
+                                OtherTraversal,
+                                OtherReference,
+                                OtherDifference,
+                                Buffer
+                            >& other,
+                         typename enable_if<
+                            typename mpl::and_<
+                                typename is_mutable_reference<OtherReference>::type,
+                                typename is_const_reference<Reference>::type
+                            >::type,
+                            enabler
+                        >::type* = 0
+                    )
+                : m_impl(other.m_impl
+                            ? other.m_impl->clone_const_ref(m_buffer)
+                         : 0
+                        )
+            {
+            }
+
+            // Implicit conversion from another any_iterator where the
+            // reference types of the source and the target are references
+            // that are either both const, or both non-const.
+            template<
+                class OtherValue
+              , class OtherTraversal
+              , class OtherReference
+              , class OtherDifference
+            >
+            any_iterator(const any_iterator<
+                                OtherValue
+                              , OtherTraversal
+                              , OtherReference
+                              , OtherDifference
+                              , Buffer
+                            >& other,
+                         typename enable_if<
+                            typename mpl::or_<
+                                typename mpl::and_<
+                                    typename is_mutable_reference<OtherReference>::type,
+                                    typename is_mutable_reference<Reference>::type
+                                >::type,
+                                typename mpl::and_<
+                                    typename is_const_reference<OtherReference>::type,
+                                    typename is_const_reference<Reference>::type
+                                >::type
+                            >::type,
+                            enabler
+                        >::type* = 0
+                        )
+                : m_impl(other.m_impl
+                            ? other.m_impl->clone(m_buffer)
+                         : 0
+                        )
+            {
+            }
+
+            // Implicit conversion to an any_iterator that uses a value for
+            // the reference type.
+            template<
+                class OtherValue
+              , class OtherTraversal
+              , class OtherReference
+              , class OtherDifference
+            >
+            any_iterator(const any_iterator<
+                                OtherValue
+                              , OtherTraversal
+                              , OtherReference
+                              , OtherDifference
+                              , Buffer
+                            >& other,
+                        typename enable_if<
+                            typename is_convertible_to_value_as_reference<
+                                        OtherReference
+                                      , Reference
+                                    >::type,
+                            enabler
+                        >::type* = 0
+                        )
+                : m_impl(other.m_impl
+                            ? other.m_impl->clone_reference_as_value(m_buffer)
+                            : 0
+                            )
+            {
+            }
+
+            any_iterator clone() const
+            {
+                any_iterator result;
+                if (m_impl)
+                    result.m_impl = m_impl->clone(result.m_buffer);
+                return result;
+            }
+
+            any_iterator<
+                Value
+              , Traversal
+              , typename abstract_base_type::const_reference
+              , Difference
+              , Buffer
+            >
+            clone_const_ref() const
+            {
+                typedef any_iterator<
+                    Value
+                  , Traversal
+                  , typename abstract_base_type::const_reference
+                  , Difference
+                  , Buffer
+                > result_type;
+
+                result_type result;
+
+                if (m_impl)
+                    result.m_impl = m_impl->clone_const_ref(result.m_buffer);
+
+                return result;
+            }
+
+            // implicit conversion and construction from type-erasure-compatible
+            // iterators
+            template<class WrappedIterator>
+            explicit any_iterator(
+                const WrappedIterator& wrapped_iterator,
+                typename disable_if<
+                    typename is_any_iterator<WrappedIterator>::type
+                  , disabler
+                >::type* = 0
+                )
+            {
+                typedef typename any_iterator_wrapper_type_generator<
+                            WrappedIterator
+                          , Traversal
+                          , Reference
+                          , Difference
+                          , Buffer
+                        >::type wrapper_type;
+
+                void* ptr = m_buffer.allocate(sizeof(wrapper_type));
+                m_impl = new(ptr) wrapper_type(wrapped_iterator);
+            }
+
+            ~any_iterator()
+            {
+                // manually run the destructor, the deallocation is automatically
+                // handled by the any_iterator_small_buffer base class.
+                if (m_impl)
+                    m_impl->~abstract_base_type();
+            }
+
+        private:
+            friend class ::boost::iterator_core_access;
+
+            Reference dereference() const
+            {
+                BOOST_ASSERT( m_impl );
+                return m_impl->dereference();
+            }
+
+            bool equal(const any_iterator& other) const
+            {
+                return (m_impl == other.m_impl)
+                    || (m_impl && other.m_impl && m_impl->equal(*other.m_impl));
+            }
+
+            void increment()
+            {
+                BOOST_ASSERT( m_impl );
+                m_impl->increment();
+            }
+
+            void decrement()
+            {
+                BOOST_ASSERT( m_impl );
+                m_impl->decrement();
+            }
+
+            Difference distance_to(const any_iterator& other) const
+            {
+                return m_impl && other.m_impl
+                    ? m_impl->distance_to(*other.m_impl)
+                    : 0;
+            }
+
+            void advance(Difference offset)
+            {
+                BOOST_ASSERT( m_impl );
+                m_impl->advance(offset);
+            }
+
+            any_iterator& swap(any_iterator& other)
+            {
+                BOOST_ASSERT( this != &other );
+                // grab a temporary copy of the other iterator
+                any_iterator tmp(other);
+
+                // deallocate the other iterator, taking care to obey the
+                // class-invariants in-case of exceptions later
+                if (other.m_impl)
+                {
+                    other.m_impl->~abstract_base_type();
+                    other.m_buffer.deallocate();
+                    other.m_impl = 0;
+                }
+
+                // If this is a non-null iterator then we need to put
+                // a clone of this iterators impementation into the other
+                // iterator.
+                // We can't just swap because of the small buffer optimization.
+                if (m_impl)
+                {
+                    other.m_impl = m_impl->clone(other.m_buffer);
+                    m_impl->~abstract_base_type();
+                    m_buffer.deallocate();
+                    m_impl = 0;
+                }
+
+                // assign to this instance a clone of the temporarily held
+                // tmp which represents the input other parameter at the
+                // start of execution of this function.
+                if (tmp.m_impl)
+                    m_impl = tmp.m_impl->clone(m_buffer);
+
+                return *this;
+            }
+
+            buffer_type m_buffer;
+            abstract_base_type* m_impl;
+        };
+
+    } // namespace range_detail
+} // namespace boost
+
+#endif // include guard
Added: trunk/boost/range/detail/any_iterator_buffer.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/range/detail/any_iterator_buffer.hpp	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -0,0 +1,119 @@
+// Boost.Range library
+//
+//  Copyright Neil Groves 2010. Use, modification and
+//  distribution is subject to 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)
+//
+// For more information, see http://www.boost.org/libs/range/
+//
+#ifndef BOOST_RANGE_DETAIL_ANY_ITERATOR_BUFFER_HPP_INCLUDED
+#define BOOST_RANGE_DETAIL_ANY_ITERATOR_BUFFER_HPP_INCLUDED
+
+#include <boost/array.hpp>
+#include <boost/assert.hpp>
+#include <boost/static_assert.hpp>
+#include <boost/utility.hpp>
+
+namespace boost
+{
+    template<std::size_t StackBufferSize>
+    class any_iterator_buffer
+        : noncopyable
+    {
+        BOOST_STATIC_ASSERT(( StackBufferSize > 0 ));
+    public:
+        any_iterator_buffer()
+            : m_ptr()
+        {
+        }
+
+        ~any_iterator_buffer()
+        {
+            delete [] m_ptr;
+        }
+
+        void* allocate(std::size_t bytes)
+        {
+            BOOST_ASSERT( !m_ptr );
+            if (bytes <= StackBufferSize)
+                return m_buffer.data();
+
+            m_ptr = new char[bytes];
+            return m_ptr;
+        }
+
+        void deallocate()
+        {
+            delete [] m_ptr;
+            m_ptr = 0;
+        }
+
+    private:
+        // Rationale:
+        // Do not use inheritance from noncopyable because this causes
+        // the concepts to erroneous detect the derived any_iterator
+        // as noncopyable.
+        any_iterator_buffer(const any_iterator_buffer&);
+        void operator=(const any_iterator_buffer&);
+
+        char* m_ptr;
+        boost::array<char, StackBufferSize> m_buffer;
+    };
+
+    class any_iterator_heap_only_buffer
+        : noncopyable
+    {
+    public:
+        any_iterator_heap_only_buffer()
+            : m_ptr()
+        {
+        }
+
+        ~any_iterator_heap_only_buffer()
+        {
+            delete [] m_ptr;
+        }
+
+        void* allocate(std::size_t bytes)
+        {
+            BOOST_ASSERT( !m_ptr );
+            m_ptr = new char[bytes];
+            return m_ptr;
+        }
+
+        void deallocate()
+        {
+            delete [] m_ptr;
+            m_ptr = 0;
+        }
+
+    private:
+        char* m_ptr;
+    };
+
+    template<std::size_t StackBufferSize>
+    class any_iterator_stack_only_buffer
+    {
+        BOOST_STATIC_ASSERT(( StackBufferSize > 0 ));
+    public:
+        void* allocate(std::size_t bytes)
+        {
+            BOOST_ASSERT( bytes <= m_buffer.size() );
+            return m_buffer.data();
+        }
+
+        void deallocate()
+        {
+        }
+
+    private:
+        boost::array<char, StackBufferSize> m_buffer;
+    };
+
+    typedef any_iterator_buffer<64> any_iterator_default_buffer;
+} // namespace boost
+
+#undef BOOST_TEST_MESSAGE
+
+#endif // include guard
Added: trunk/boost/range/detail/any_iterator_interface.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/range/detail/any_iterator_interface.hpp	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -0,0 +1,258 @@
+// Boost.Range library
+//
+//  Copyright Neil Groves 2010. Use, modification and
+//  distribution is subject to 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)
+//
+// For more information, see http://www.boost.org/libs/range/
+//
+#ifndef BOOST_RANGE_DETAIL_ANY_ITERATOR_INTERFACE_HPP_INCLUDED
+#define BOOST_RANGE_DETAIL_ANY_ITERATOR_INTERFACE_HPP_INCLUDED
+
+#include <boost/range/detail/any_iterator_buffer.hpp>
+#include <boost/type_traits/add_reference.hpp>
+#include <boost/type_traits/add_const.hpp>
+
+namespace boost
+{
+    namespace range_detail
+    {
+        template<class T>
+        struct const_reference_type_generator
+        {
+            typedef typename mpl::if_<
+                typename is_reference<T>::type,
+                typename add_reference<
+                    typename add_const<
+                        typename remove_reference<T>::type
+                    >::type
+                >::type,
+                T
+            >::type type;
+        };
+
+        template<
+            class Reference
+          , class Buffer
+        >
+        struct any_incrementable_iterator_interface
+        {
+            typedef Reference reference;
+            typedef typename const_reference_type_generator<
+                Reference
+            >::type const_reference;
+            typedef typename remove_const<
+                typename remove_reference<Reference>::type
+            >::type reference_as_value_type;
+
+            typedef Buffer buffer_type;
+
+            virtual ~any_incrementable_iterator_interface() {}
+
+            virtual any_incrementable_iterator_interface*
+                        clone(buffer_type& buffer) const = 0;
+
+            virtual any_incrementable_iterator_interface<const_reference, Buffer>*
+                        clone_const_ref(buffer_type& buffer) const = 0;
+
+            virtual any_incrementable_iterator_interface<reference_as_value_type, Buffer>*
+                        clone_reference_as_value(buffer_type& buffer) const = 0;
+
+            virtual void increment() = 0;
+        };
+
+        template<
+            class Reference
+          , class Buffer
+        >
+        struct any_single_pass_iterator_interface
+            : any_incrementable_iterator_interface<Reference, Buffer>
+        {
+            typedef typename any_incrementable_iterator_interface<Reference, Buffer>::reference reference;
+            typedef typename any_incrementable_iterator_interface<Reference, Buffer>::const_reference const_reference;
+            typedef typename any_incrementable_iterator_interface<Reference, Buffer>::buffer_type buffer_type;
+            typedef typename any_incrementable_iterator_interface<Reference, Buffer>::reference_as_value_type reference_as_value_type;
+
+            virtual any_single_pass_iterator_interface*
+                        clone(buffer_type& buffer) const = 0;
+
+            virtual any_single_pass_iterator_interface<const_reference, Buffer>*
+                        clone_const_ref(buffer_type& buffer) const = 0;
+
+            virtual any_single_pass_iterator_interface<reference_as_value_type, Buffer>*
+                        clone_reference_as_value(buffer_type& buffer) const = 0;
+
+            virtual Reference dereference() const = 0;
+
+            virtual bool equal(const any_single_pass_iterator_interface& other) const = 0;
+        };
+
+        template<
+            class Reference
+          , class Buffer
+        >
+        struct any_forward_iterator_interface
+            : any_single_pass_iterator_interface<Reference, Buffer>
+        {
+            typedef typename any_single_pass_iterator_interface<Reference, Buffer>::reference reference;
+            typedef typename any_single_pass_iterator_interface<Reference, Buffer>::const_reference const_reference;
+            typedef typename any_single_pass_iterator_interface<Reference, Buffer>::buffer_type buffer_type;
+            typedef typename any_single_pass_iterator_interface<Reference, Buffer>::reference_as_value_type reference_as_value_type;
+
+            virtual any_forward_iterator_interface*
+                        clone(buffer_type& buffer) const = 0;
+
+            virtual any_forward_iterator_interface<const_reference, Buffer>*
+                        clone_const_ref(buffer_type& buffer) const = 0;
+
+            virtual any_forward_iterator_interface<reference_as_value_type, Buffer>*
+                        clone_reference_as_value(buffer_type& buffer) const = 0;
+        };
+
+        template<
+            class Reference
+          , class Buffer
+        >
+        struct any_bidirectional_iterator_interface
+            : any_forward_iterator_interface<Reference, Buffer>
+        {
+            typedef typename any_forward_iterator_interface<Reference, Buffer>::reference reference;
+            typedef typename any_forward_iterator_interface<Reference, Buffer>::const_reference const_reference;
+            typedef typename any_forward_iterator_interface<Reference, Buffer>::buffer_type buffer_type;
+            typedef typename any_forward_iterator_interface<Reference, Buffer>::reference_as_value_type reference_as_value_type;
+
+            virtual any_bidirectional_iterator_interface*
+                        clone(buffer_type& buffer) const = 0;
+
+            virtual any_bidirectional_iterator_interface<const_reference, Buffer>*
+                        clone_const_ref(buffer_type& buffer) const = 0;
+
+            virtual any_bidirectional_iterator_interface<reference_as_value_type, Buffer>*
+                        clone_reference_as_value(buffer_type& buffer) const = 0;
+
+            virtual void decrement() = 0;
+        };
+
+        template<
+            class Reference
+          , class Difference
+          , class Buffer
+        >
+        struct any_random_access_iterator_interface
+            : any_bidirectional_iterator_interface<
+                    Reference
+                  , Buffer
+                >
+        {
+            typedef typename any_bidirectional_iterator_interface<Reference, Buffer>::reference reference;
+            typedef typename any_bidirectional_iterator_interface<Reference, Buffer>::const_reference const_reference;
+            typedef typename any_bidirectional_iterator_interface<Reference, Buffer>::buffer_type buffer_type;
+            typedef typename any_bidirectional_iterator_interface<Reference, Buffer>::reference_as_value_type reference_as_value_type;
+            typedef Difference difference_type;
+
+            virtual any_random_access_iterator_interface*
+                        clone(buffer_type& buffer) const = 0;
+
+            virtual any_random_access_iterator_interface<const_reference, Difference, Buffer>*
+                        clone_const_ref(buffer_type& buffer) const = 0;
+
+            virtual any_random_access_iterator_interface<reference_as_value_type, Difference, Buffer>*
+                        clone_reference_as_value(buffer_type& buffer) const = 0;
+
+            virtual void advance(Difference offset) = 0;
+
+            virtual Difference distance_to(const any_random_access_iterator_interface& other) const = 0;
+        };
+
+        template<
+            class Traversal
+          , class Reference
+          , class Difference
+          , class Buffer
+        >
+        struct any_iterator_interface_type_generator;
+
+        template<
+            class Reference
+          , class Difference
+          , class Buffer
+        >
+        struct any_iterator_interface_type_generator<
+                    incrementable_traversal_tag
+                  , Reference
+                  , Difference
+                  , Buffer
+                >
+        {
+            typedef any_incrementable_iterator_interface<Reference, Buffer> type;
+        };
+
+        template<
+            class Reference
+          , class Difference
+          , class Buffer
+        >
+        struct any_iterator_interface_type_generator<
+                    single_pass_traversal_tag
+                  , Reference
+                  , Difference
+                  , Buffer
+                >
+        {
+            typedef any_single_pass_iterator_interface<Reference, Buffer> type;
+        };
+
+        template<
+            class Reference
+          , class Difference
+          , class Buffer
+        >
+        struct any_iterator_interface_type_generator<
+                    forward_traversal_tag
+                  , Reference
+                  , Difference
+                  , Buffer
+                >
+        {
+            typedef any_forward_iterator_interface<Reference, Buffer> type;
+        };
+
+        template<
+            class Reference
+          , class Difference
+          , class Buffer
+        >
+        struct any_iterator_interface_type_generator<
+                    bidirectional_traversal_tag
+                  , Reference
+                  , Difference
+                  , Buffer
+                >
+        {
+            typedef any_bidirectional_iterator_interface<Reference, Buffer> type;
+        };
+
+        template<
+            class Reference
+          , class Difference
+          , class Buffer
+        >
+        struct any_iterator_interface_type_generator<
+                    random_access_traversal_tag
+                  , Reference
+                  , Difference
+                  , Buffer
+                >
+        {
+            typedef any_random_access_iterator_interface<
+                        Reference
+                      , Difference
+                      , Buffer
+                    > type;
+        };
+
+    } // namespace range_detail
+} // namespace boost
+
+#endif // include guard
Added: trunk/boost/range/detail/any_iterator_wrapper.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/range/detail/any_iterator_wrapper.hpp	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -0,0 +1,590 @@
+// Boost.Range library
+//
+//  Copyright Neil Groves 2010. Use, modification and
+//  distribution is subject to 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)
+//
+// For more information, see http://www.boost.org/libs/range/
+//
+#ifndef BOOST_RANGE_DETAIL_ANY_ITERATOR_WRAPPER_HPP_INCLUDED
+#define BOOST_RANGE_DETAIL_ANY_ITERATOR_WRAPPER_HPP_INCLUDED
+
+#include <boost/range/config.hpp>
+#include <boost/range/detail/any_iterator_interface.hpp>
+
+namespace boost
+{
+    namespace range_detail
+    {
+        template<
+            class WrappedIterator
+          , class Reference
+          , class Buffer
+        >
+        class any_incrementable_iterator_wrapper
+            : public any_incrementable_iterator_interface<
+                        Reference
+                      , Buffer
+                    >
+        {
+            BOOST_RANGE_CONCEPT_ASSERT(( IncrementableIteratorConcept<WrappedIterator> ));
+        public:
+            typedef WrappedIterator wrapped_type;
+
+            BOOST_STATIC_ASSERT(( is_convertible<
+                                    typename iterator_reference<WrappedIterator>::type
+                                  , Reference
+                                  >::value ));
+
+            any_incrementable_iterator_wrapper()
+                : m_it()
+            {}
+
+            explicit any_incrementable_iterator_wrapper(wrapped_type it)
+                : m_it(it)
+            {}
+
+        // any_incrementable_iterator implementation
+            virtual any_incrementable_iterator_wrapper* clone(
+                typename any_incrementable_iterator_wrapper::buffer_type& buffer
+                ) const
+            {
+                return new (buffer.allocate(sizeof(*this)))
+                                any_incrementable_iterator_wrapper(m_it);
+            }
+
+            virtual any_incrementable_iterator_wrapper<
+                        WrappedIterator
+                      , typename any_incrementable_iterator_wrapper::const_reference
+                      , Buffer
+                    >* clone_const_ref(
+                        typename any_incrementable_iterator_wrapper::buffer_type& buffer
+                ) const
+            {
+                typedef any_incrementable_iterator_wrapper<
+                            WrappedIterator
+                          , typename any_incrementable_iterator_wrapper::const_reference
+                          , Buffer
+                        > result_type;
+
+                return new (buffer.allocate(sizeof(result_type)))
+                            result_type(m_it);
+            }
+
+            virtual any_incrementable_iterator_wrapper<
+                        WrappedIterator
+                      , typename any_incrementable_iterator_wrapper::reference_as_value_type
+                      , Buffer
+                    >* clone_reference_as_value(
+                        typename any_incrementable_iterator_wrapper::buffer_type& buffer
+                ) const
+            {
+                typedef any_incrementable_iterator_wrapper<
+                            WrappedIterator
+                          , typename any_incrementable_iterator_wrapper::reference_as_value_type
+                          , Buffer
+                        > result_type;
+
+                return new (buffer.allocate(sizeof(result_type)))
+                            result_type(m_it);
+            }
+
+            virtual void increment()
+            {
+                ++m_it;
+            }
+
+         private:
+            wrapped_type m_it;
+        };
+
+        template<
+            class WrappedIterator
+          , class Reference
+          , class Buffer
+        >
+        class any_single_pass_iterator_wrapper
+            : public any_single_pass_iterator_interface<
+                        Reference
+                      , Buffer
+                    >
+        {
+            struct disabler {};
+            BOOST_RANGE_CONCEPT_ASSERT(( SinglePassIteratorConcept<WrappedIterator> ));
+        public:
+
+            any_single_pass_iterator_wrapper()
+                : m_it()
+            {}
+
+            explicit any_single_pass_iterator_wrapper(const WrappedIterator& it)
+                : m_it(it)
+            {}
+        // any_single_pass_iterator_interface<Reference> implementation
+            virtual any_single_pass_iterator_wrapper* clone(
+                typename any_single_pass_iterator_wrapper::buffer_type& buffer
+                ) const
+            {
+                return new (buffer.allocate(sizeof(*this)))
+                            any_single_pass_iterator_wrapper(m_it);
+            }
+
+            virtual any_single_pass_iterator_wrapper<
+                WrappedIterator
+              , typename any_single_pass_iterator_wrapper::const_reference
+              , Buffer
+            >* clone_const_ref(
+                   typename any_single_pass_iterator_wrapper::buffer_type& buffer
+                   ) const
+            {
+                typedef any_single_pass_iterator_wrapper<
+                            WrappedIterator
+                          , typename any_single_pass_iterator_wrapper::const_reference
+                          , Buffer
+                        > result_type;
+
+                return new (buffer.allocate(sizeof(result_type)))
+                            result_type(m_it);
+            }
+
+            virtual any_single_pass_iterator_wrapper<
+                WrappedIterator
+              , typename any_single_pass_iterator_wrapper::reference_as_value_type
+              , Buffer
+            >* clone_reference_as_value(
+                typename any_single_pass_iterator_wrapper::buffer_type& buffer
+                ) const
+            {
+                typedef any_single_pass_iterator_wrapper<
+                            WrappedIterator
+                          , typename any_single_pass_iterator_wrapper::reference_as_value_type
+                          , Buffer
+                        > result_type;
+
+                return new (buffer.allocate(sizeof(result_type)))
+                            result_type(m_it);
+            }
+
+            virtual void increment()
+            {
+                ++m_it;
+            }
+
+            virtual bool equal(const any_single_pass_iterator_interface<Reference, Buffer>& other) const
+            {
+                return m_it == boost::polymorphic_downcast<const any_single_pass_iterator_wrapper*>(&other)->m_it;
+            }
+
+            virtual Reference dereference() const
+            {
+                return *m_it;
+            }
+
+        private:
+            WrappedIterator m_it;
+        };
+
+        template<
+            class WrappedIterator
+          , class Reference
+          , class Buffer
+        >
+        class any_forward_iterator_wrapper
+            : public any_forward_iterator_interface<
+                        Reference
+                      , Buffer
+                    >
+        {
+            BOOST_RANGE_CONCEPT_ASSERT(( ForwardIteratorConcept<WrappedIterator> ));
+        public:
+            any_forward_iterator_wrapper()
+                : m_it()
+            {}
+
+            explicit any_forward_iterator_wrapper(const WrappedIterator& it)
+                : m_it(it)
+            {}
+
+            // any_forward_iterator_interface<Reference> implementation
+            virtual any_forward_iterator_wrapper* clone(
+                typename any_forward_iterator_wrapper::buffer_type& buffer
+                ) const
+            {
+                return new (buffer.allocate(sizeof(*this)))
+                                any_forward_iterator_wrapper(m_it);
+            }
+
+            virtual any_forward_iterator_wrapper<
+                        WrappedIterator
+                      , typename any_forward_iterator_wrapper::const_reference
+                      , Buffer
+                    >* clone_const_ref(
+                            typename any_forward_iterator_wrapper::buffer_type& buffer
+                        ) const
+            {
+                typedef any_forward_iterator_wrapper<
+                            WrappedIterator
+                          , typename any_forward_iterator_wrapper::const_reference
+                          , Buffer
+                        > result_type;
+
+                return new (buffer.allocate(sizeof(result_type)))
+                            result_type(m_it);
+            }
+
+            virtual any_forward_iterator_wrapper<
+                        WrappedIterator
+                      , typename any_forward_iterator_wrapper::reference_as_value_type
+                      , Buffer
+                    >* clone_reference_as_value(
+                            typename any_forward_iterator_wrapper::buffer_type& buffer
+                    ) const
+            {
+                typedef any_forward_iterator_wrapper<
+                            WrappedIterator
+                          , typename any_forward_iterator_wrapper::reference_as_value_type
+                          , Buffer
+                        > result_type;
+
+                return new (buffer.allocate(sizeof(result_type)))
+                            result_type(m_it);
+            }
+
+            virtual void increment()
+            {
+                ++m_it;
+            }
+
+            virtual bool equal(const any_single_pass_iterator_interface<Reference, Buffer>& other) const
+            {
+                return m_it == boost::polymorphic_downcast<const any_forward_iterator_wrapper*>(&other)->m_it;
+            }
+
+            virtual Reference dereference() const
+            {
+                return *m_it;
+            }
+        private:
+            WrappedIterator m_it;
+        };
+
+        template<
+            class WrappedIterator
+          , class Reference
+          , class Buffer
+        >
+        class any_bidirectional_iterator_wrapper
+            : public any_bidirectional_iterator_interface<
+                        Reference
+                      , Buffer
+                    >
+        {
+            BOOST_RANGE_CONCEPT_ASSERT(( BidirectionalIteratorConcept<WrappedIterator> ));
+        public:
+            any_bidirectional_iterator_wrapper()
+                : m_it()
+            {
+            }
+
+            explicit any_bidirectional_iterator_wrapper(const WrappedIterator& it)
+                : m_it(it)
+            {
+            }
+
+            virtual any_bidirectional_iterator_wrapper* clone(
+                typename any_bidirectional_iterator_wrapper::buffer_type& buffer
+                ) const
+            {
+                return new (buffer.allocate(sizeof(*this)))
+                            any_bidirectional_iterator_wrapper(*this);
+            }
+
+            virtual any_bidirectional_iterator_wrapper<
+                        WrappedIterator
+                      , typename any_bidirectional_iterator_wrapper::const_reference
+                      , Buffer
+                    >* clone_const_ref(
+                           typename any_bidirectional_iterator_wrapper::buffer_type& buffer
+                       ) const
+            {
+                typedef any_bidirectional_iterator_wrapper<
+                            WrappedIterator
+                          , typename any_bidirectional_iterator_wrapper::const_reference
+                          , Buffer
+                        > result_type;
+
+                return new (buffer.allocate(sizeof(result_type)))
+                            result_type(m_it);
+            }
+
+            virtual any_bidirectional_iterator_wrapper<
+                        WrappedIterator
+                      , typename any_bidirectional_iterator_wrapper::reference_as_value_type
+                      , Buffer
+                    >* clone_reference_as_value(
+                           typename any_bidirectional_iterator_wrapper::buffer_type& buffer
+                       ) const
+            {
+                typedef any_bidirectional_iterator_wrapper<
+                            WrappedIterator
+                          , typename any_bidirectional_iterator_wrapper::reference_as_value_type
+                          , Buffer
+                        > result_type;
+
+                return new (buffer.allocate(sizeof(result_type)))
+                            result_type(m_it);
+            }
+
+            virtual void increment()
+            {
+                ++m_it;
+            }
+
+            virtual void decrement()
+            {
+                --m_it;
+            }
+
+            virtual bool equal(const any_single_pass_iterator_interface<Reference, Buffer>& other) const
+            {
+                return m_it == boost::polymorphic_downcast<const any_bidirectional_iterator_wrapper*>(&other)->m_it;
+            }
+
+            virtual Reference dereference() const
+            {
+                return *m_it;
+            }
+
+        private:
+            WrappedIterator m_it;
+        };
+
+        template<
+            class WrappedIterator
+          , class Reference
+          , class Difference
+          , class Buffer
+        >
+        class any_random_access_iterator_wrapper
+            : public any_random_access_iterator_interface<
+                            Reference
+                          , Difference
+                          , Buffer
+                        >
+        {
+            BOOST_RANGE_CONCEPT_ASSERT(( RandomAccessIteratorConcept<WrappedIterator> ));
+        public:
+            typedef Difference difference_type;
+
+            any_random_access_iterator_wrapper()
+                : m_it()
+            {
+            }
+
+            explicit any_random_access_iterator_wrapper(const WrappedIterator& other)
+                : m_it(other)
+            {
+            }
+
+            virtual any_random_access_iterator_wrapper* clone(
+                    typename any_random_access_iterator_wrapper::buffer_type& buffer
+                ) const
+            {
+                return new (buffer.allocate(sizeof(*this)))
+                                any_random_access_iterator_wrapper(*this);
+            }
+
+            virtual any_random_access_iterator_wrapper<
+                        WrappedIterator
+                      , typename any_random_access_iterator_wrapper::const_reference
+                      , Difference
+                      , Buffer
+                    >* clone_const_ref(
+                           typename any_random_access_iterator_wrapper::buffer_type& buffer
+                           ) const
+            {
+                typedef any_random_access_iterator_wrapper<
+                            WrappedIterator
+                          , typename any_random_access_iterator_wrapper::const_reference
+                          , Difference
+                          , Buffer
+                        > result_type;
+
+                return new (buffer.allocate(sizeof(result_type)))
+                            result_type(m_it);
+            }
+
+            virtual any_random_access_iterator_wrapper<
+                        WrappedIterator
+                      , typename any_random_access_iterator_wrapper::reference_as_value_type
+                      , Difference
+                      , Buffer
+                    >* clone_reference_as_value(
+                           typename any_random_access_iterator_wrapper::buffer_type& buffer
+                           ) const
+            {
+                typedef any_random_access_iterator_wrapper<
+                            WrappedIterator
+                          , typename any_random_access_iterator_wrapper::reference_as_value_type
+                          , Difference
+                          , Buffer
+                        > result_type;
+
+                return new (buffer.allocate(sizeof(result_type)))
+                            result_type(m_it);
+            }
+
+            virtual void increment()
+            {
+                ++m_it;
+            }
+
+            virtual bool equal(const any_single_pass_iterator_interface<Reference, Buffer>& other) const
+            {
+                return m_it == boost::polymorphic_downcast<const any_random_access_iterator_wrapper*>(&other)->m_it;
+            }
+
+            virtual void decrement()
+            {
+                --m_it;
+            }
+
+            virtual void advance(Difference offset)
+            {
+                m_it += offset;
+            }
+
+            virtual Reference dereference() const
+            {
+                return *m_it;
+            }
+
+            virtual Difference distance_to(const any_random_access_iterator_interface<Reference, Difference, Buffer>& other) const
+            {
+                return boost::polymorphic_downcast<const any_random_access_iterator_wrapper*>(&other)->m_it - m_it;
+            }
+
+        private:
+            WrappedIterator m_it;
+        };
+
+        template<
+            class WrappedIterator
+          , class Traversal
+          , class Reference
+          , class Difference
+          , class Buffer
+        >
+        struct any_iterator_wrapper_type_generator;
+
+        template<
+            class WrappedIterator
+          , class Reference
+          , class Difference
+          , class Buffer
+        >
+        struct any_iterator_wrapper_type_generator<
+            WrappedIterator
+          , incrementable_traversal_tag
+          , Reference
+          , Difference
+          , Buffer
+        >
+        {
+            typedef any_incrementable_iterator_wrapper<
+                        WrappedIterator
+                      , Reference
+                      , Buffer
+                    > type;
+        };
+
+        template<
+            class WrappedIterator
+          , class Reference
+          , class Difference
+          , class Buffer
+        >
+        struct any_iterator_wrapper_type_generator<
+            WrappedIterator
+          , single_pass_traversal_tag
+          , Reference
+          , Difference
+          , Buffer
+        >
+        {
+            typedef any_single_pass_iterator_wrapper<
+                        WrappedIterator
+                      , Reference
+                      , Buffer
+                > type;
+        };
+
+        template<
+            class WrappedIterator
+          , class Reference
+          , class Difference
+          , class Buffer
+        >
+        struct any_iterator_wrapper_type_generator<
+            WrappedIterator
+          , forward_traversal_tag
+          , Reference
+          , Difference
+          , Buffer
+        >
+        {
+            typedef any_forward_iterator_wrapper<
+                WrappedIterator
+              , Reference
+              , Buffer
+            > type;
+        };
+
+        template<
+            class WrappedIterator
+          , class Reference
+          , class Difference
+          , class Buffer
+        >
+        struct any_iterator_wrapper_type_generator<
+            WrappedIterator
+          , bidirectional_traversal_tag
+          , Reference
+          , Difference
+          , Buffer
+        >
+        {
+            typedef any_bidirectional_iterator_wrapper<
+                WrappedIterator
+              , Reference
+              , Buffer
+            > type;
+        };
+
+        template<
+            class WrappedIterator
+          , class Reference
+          , class Difference
+          , class Buffer
+        >
+        struct any_iterator_wrapper_type_generator<
+            WrappedIterator
+          , random_access_traversal_tag
+          , Reference
+          , Difference
+          , Buffer
+        >
+        {
+            typedef any_random_access_iterator_wrapper<
+                WrappedIterator
+              , Reference
+              , Difference
+              , Buffer
+            > type;
+        };
+
+    } // namespace range_detail
+} // namespace boost
+
+#endif // include guard
Modified: trunk/boost/range/detail/begin.hpp
==============================================================================
--- trunk/boost/range/detail/begin.hpp	(original)
+++ trunk/boost/range/detail/begin.hpp	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -19,9 +19,9 @@
 # include <boost/range/value_type.hpp>
 #endif
 
-namespace boost 
+namespace boost
 {
-    
+
     namespace range_detail
     {
         template< typename T >
@@ -30,7 +30,7 @@
         //////////////////////////////////////////////////////////////////////
         // default
         //////////////////////////////////////////////////////////////////////
-        
+
         template<>
         struct range_begin<std_container_>
         {
@@ -40,11 +40,11 @@
                 return c.begin();
             };
         };
-                    
+
         //////////////////////////////////////////////////////////////////////
         // pair
         //////////////////////////////////////////////////////////////////////
-        
+
         template<>
         struct range_begin<std_pair_>
         {
@@ -54,11 +54,11 @@
                 return p.first;
             }
         };
- 
+
         //////////////////////////////////////////////////////////////////////
         // array
         //////////////////////////////////////////////////////////////////////
-        
+
         template<>
         struct range_begin<array_>
         {
@@ -78,14 +78,16 @@
         };
 
     } // namespace 'range_detail'
-    
-    template< typename C >
-    inline BOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type 
-    begin( C& c )
+
+    namespace range_adl_barrier
     {
-        return range_detail::range_begin< BOOST_RANGE_DEDUCED_TYPENAME range_detail::range<C>::type >::fun( c );
+        template< typename C >
+        inline BOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type
+        begin( C& c )
+        {
+            return range_detail::range_begin< BOOST_RANGE_DEDUCED_TYPENAME range_detail::range<C>::type >::fun( c );
+        }
     }
-    
 } // namespace 'boost'
 
 
Modified: trunk/boost/range/detail/end.hpp
==============================================================================
--- trunk/boost/range/detail/end.hpp	(original)
+++ trunk/boost/range/detail/end.hpp	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -24,7 +24,7 @@
 #  include <boost/range/detail/remove_extent.hpp>
 # endif
 
-namespace boost 
+namespace boost
 {
     namespace range_detail
     {
@@ -34,39 +34,39 @@
         //////////////////////////////////////////////////////////////////////
         // default
         //////////////////////////////////////////////////////////////////////
-        
+
         template<>
         struct range_end<std_container_>
         {
             template< typename C >
-            static BOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type 
+            static BOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type
             fun( C& c )
             {
                 return c.end();
             };
         };
-                    
+
         //////////////////////////////////////////////////////////////////////
         // pair
         //////////////////////////////////////////////////////////////////////
-        
+
         template<>
         struct range_end<std_pair_>
         {
             template< typename P >
-            static BOOST_RANGE_DEDUCED_TYPENAME range_iterator<P>::type 
+            static BOOST_RANGE_DEDUCED_TYPENAME range_iterator<P>::type
             fun( const P& p )
             {
                 return p.second;
             }
         };
- 
+
         //////////////////////////////////////////////////////////////////////
         // array
         //////////////////////////////////////////////////////////////////////
-        
+
         template<>
-        struct range_end<array_>  
+        struct range_end<array_>
         {
         #if !BOOST_WORKAROUND(BOOST_MSVC, < 1310)
             template< typename T, std::size_t sz >
@@ -82,16 +82,19 @@
             }
         #endif
         };
-        
+
     } // namespace 'range_detail'
-    
-    template< typename C >
-    inline BOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type 
-    end( C& c )
+
+    namespace range_adl_barrier
     {
-        return range_detail::range_end< BOOST_RANGE_DEDUCED_TYPENAME range_detail::range<C>::type >::fun( c );
-    }
-    
+        template< typename C >
+        inline BOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type
+        end( C& c )
+        {
+            return range_detail::range_end< BOOST_RANGE_DEDUCED_TYPENAME range_detail::range<C>::type >::fun( c );
+        }
+    } // namespace range_adl_barrier
+
 } // namespace 'boost'
 
 # endif // VC6
Modified: trunk/boost/range/end.hpp
==============================================================================
--- trunk/boost/range/end.hpp	(original)
+++ trunk/boost/range/end.hpp	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -88,6 +88,9 @@
 } // namespace 'range_detail'
 #endif
 
+namespace range_adl_barrier
+{
+
 template< class T >
 inline BOOST_DEDUCED_TYPENAME range_iterator<T>::type end( T& r )
 {
@@ -110,22 +113,24 @@
     return range_end( r );
 }
 
+    } // namespace range_adl_barrier
 } // namespace 'boost'
 
-
-
 #endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
 
-
 namespace boost
 {
-    template< class T >
-    inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type
-    const_end( const T& r )
+    namespace range_adl_barrier
     {
-        return boost::end( r );
-    }
-}
+        template< class T >
+        inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type
+        const_end( const T& r )
+        {
+            return boost::range_adl_barrier::end( r );
+        }
+    } // namespace range_adl_barrier
+    using namespace range_adl_barrier;
+} // namespace boost
 
 #endif
 
Modified: trunk/libs/range/doc/boost_range.qbk
==============================================================================
--- trunk/libs/range/doc/boost_range.qbk	(original)
+++ trunk/libs/range/doc/boost_range.qbk	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -78,6 +78,7 @@
 [def __range_adaptors_reversed__          [link range.reference.adaptors.reference.reversed reversed]]
 [def __range_adaptors_sliced__            [link range.reference.adaptors.reference.sliced sliced]]
 [def __range_adaptors_strided__           [link range.reference.adaptors.reference.strided strided]]
+[def __range_adaptors_type_erased__       [link range.reference.adaptors.reference.type_erased type_erased]]
 [def __range_adaptors_tokenized__         [link range.reference.adaptors.reference.tokenized tokenized]]
 [def __range_adaptors_transformed__       [link range.reference.adaptors.reference.transformed transformed]]
 [def __range_adaptors_uniqued__           [link range.reference.adaptors.reference.uniqued uniqued]]
@@ -174,6 +175,7 @@
 
 [def __sgi_inner_product__      [@http://www.sgi.com/tech/stl/inner_product.html inner_product]]
 [def __sgi_partial_sum__        [@http://www.sgi.com/tech/stl/partial_sum.html partial_sum]]
+[def __type_erasure_article__   [@http://www.artima.com/cppsource/type_erasure.html type erasure article]]
 
 Boost.Range is a collection of concepts and utilities, range-based algorithms,
 as well as range adaptors that allow for efficient and expressive code.
Modified: trunk/libs/range/doc/html/index.html
==============================================================================
--- trunk/libs/range/doc/html/index.html	(original)
+++ trunk/libs/range/doc/html/index.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -30,7 +30,7 @@
 </h3></div></div>
 <div><p class="copyright">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves</p></div>
 <div><div class="legalnotice">
-<a name="id631480"></a><p>
+<a name="id607962"></a><p>
         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)
       </p>
@@ -82,6 +82,7 @@
 </dl></dd>
 <dt><span class="section">Provided Ranges</span></dt>
 <dd><dl>
+<dt><span class="section">any_range</span></dt>
 <dt><span class="section">counting_range</span></dt>
 <dt><span class="section">istream_range</span></dt>
 <dt><span class="section">irange</span></dt>
@@ -143,7 +144,7 @@
   </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: December 26, 2010 at 20:24:07 GMT</small></p></td>
+<td align="left"><p><small>Last revised: January 01, 2011 at 16:31:27 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>
Modified: trunk/libs/range/doc/html/quickbook_HTML.manifest
==============================================================================
--- trunk/libs/range/doc/html/quickbook_HTML.manifest	(original)
+++ trunk/libs/range/doc/html/quickbook_HTML.manifest	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -30,6 +30,7 @@
 range/reference/adaptors/reference/reversed.html
 range/reference/adaptors/reference/sliced.html
 range/reference/adaptors/reference/strided.html
+range/reference/adaptors/reference/type_erased.html
 range/reference/adaptors/reference/tokenized.html
 range/reference/adaptors/reference/transformed.html
 range/reference/adaptors/reference/uniqued.html
@@ -118,6 +119,7 @@
 range/reference/algorithms/numeric/inner_product.html
 range/reference/algorithms/numeric/partial_sum.html
 range/reference/ranges.html
+range/reference/ranges/any_range.html
 range/reference/ranges/counting_range.html
 range/reference/ranges/istream_range.html
 range/reference/ranges/irange.html
Modified: trunk/libs/range/doc/html/range/concepts/bidirectional_range.html
==============================================================================
--- trunk/libs/range/doc/html/range/concepts/bidirectional_range.html	(original)
+++ trunk/libs/range/doc/html/range/concepts/bidirectional_range.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.concepts.bidirectional_range"></a><a class="link" href="bidirectional_range.html" title="Bidirectional Range">Bidirectional Range</a>
 </h3></div></div></div>
 <a name="range.concepts.bidirectional_range.notation"></a><h5>
-<a name="id673774"></a>
+<a name="id650256"></a>
         <a class="link" href="bidirectional_range.html#range.concepts.bidirectional_range.notation">Notation</a>
       </h5>
 <div class="informaltable"><table class="table">
@@ -65,7 +65,7 @@
 </tbody>
 </table></div>
 <a name="range.concepts.bidirectional_range.description"></a><h5>
-<a name="id673862"></a>
+<a name="id650345"></a>
         <a class="link" href="bidirectional_range.html#range.concepts.bidirectional_range.description">Description</a>
       </h5>
 <p>
@@ -75,7 +75,7 @@
         Traversal Iterator</a>.
       </p>
 <a name="range.concepts.bidirectional_range.refinement_of"></a><h5>
-<a name="id673921"></a>
+<a name="id650403"></a>
         <a class="link" href="bidirectional_range.html#range.concepts.bidirectional_range.refinement_of">Refinement
         of</a>
       </h5>
@@ -83,7 +83,7 @@
         <a class="link" href="forward_range.html" title="Forward Range">Forward Range</a>
       </p>
 <a name="range.concepts.bidirectional_range.associated_types"></a><h5>
-<a name="id673944"></a>
+<a name="id650426"></a>
         <a class="link" href="bidirectional_range.html#range.concepts.bidirectional_range.associated_types">Associated
         types</a>
       </h5>
@@ -136,7 +136,7 @@
 </tbody>
 </table></div>
 <a name="range.concepts.bidirectional_range.valid_expressions"></a><h5>
-<a name="id674099"></a>
+<a name="id650581"></a>
         <a class="link" href="bidirectional_range.html#range.concepts.bidirectional_range.valid_expressions">Valid
         expressions</a>
       </h5>
@@ -221,7 +221,7 @@
 </tbody>
 </table></div>
 <a name="range.concepts.bidirectional_range.complexity_guarantees"></a><h5>
-<a name="id674560"></a>
+<a name="id651042"></a>
         <a class="link" href="bidirectional_range.html#range.concepts.bidirectional_range.complexity_guarantees">Complexity
         guarantees</a>
       </h5>
@@ -232,7 +232,7 @@
         <a class="link" href="forward_range.html" title="Forward Range">Forward Range</a>.
       </p>
 <a name="range.concepts.bidirectional_range.invariants"></a><h5>
-<a name="id674700"></a>
+<a name="id651182"></a>
         <a class="link" href="bidirectional_range.html#range.concepts.bidirectional_range.invariants">Invariants</a>
       </h5>
 <div class="informaltable"><table class="table">
@@ -272,7 +272,7 @@
 </tbody>
 </table></div>
 <a name="range.concepts.bidirectional_range.see_also"></a><h5>
-<a name="id674949"></a>
+<a name="id651431"></a>
         <a class="link" href="bidirectional_range.html#range.concepts.bidirectional_range.see_also">See also</a>
       </h5>
 <p>
Modified: trunk/libs/range/doc/html/range/concepts/concept_checking.html
==============================================================================
--- trunk/libs/range/doc/html/range/concepts/concept_checking.html	(original)
+++ trunk/libs/range/doc/html/range/concepts/concept_checking.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -79,7 +79,7 @@
           </li>
 </ul></div>
 <a name="range.concepts.concept_checking.see_also"></a><h5>
-<a name="id675895"></a>
+<a name="id652377"></a>
         <a class="link" href="concept_checking.html#range.concepts.concept_checking.see_also">See also</a>
       </h5>
 <p>
Modified: trunk/libs/range/doc/html/range/concepts/forward_range.html
==============================================================================
--- trunk/libs/range/doc/html/range/concepts/forward_range.html	(original)
+++ trunk/libs/range/doc/html/range/concepts/forward_range.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.concepts.forward_range"></a><a class="link" href="forward_range.html" title="Forward Range">Forward Range</a>
 </h3></div></div></div>
 <a name="range.concepts.forward_range.notation"></a><h5>
-<a name="id673403"></a>
+<a name="id649886"></a>
         <a class="link" href="forward_range.html#range.concepts.forward_range.notation">Notation</a>
       </h5>
 <div class="informaltable"><table class="table">
@@ -65,7 +65,7 @@
 </tbody>
 </table></div>
 <a name="range.concepts.forward_range.description"></a><h5>
-<a name="id673492"></a>
+<a name="id649974"></a>
         <a class="link" href="forward_range.html#range.concepts.forward_range.description">Description</a>
       </h5>
 <p>
@@ -73,14 +73,14 @@
         Traversal Iterator</a>.
       </p>
 <a name="range.concepts.forward_range.refinement_of"></a><h5>
-<a name="id673557"></a>
+<a name="id650039"></a>
         <a class="link" href="forward_range.html#range.concepts.forward_range.refinement_of">Refinement of</a>
       </h5>
 <p>
         <a class="link" href="single_pass_range.html" title="Single Pass Range">Single Pass Range</a>
       </p>
 <a name="range.concepts.forward_range.associated_types"></a><h5>
-<a name="id673580"></a>
+<a name="id650062"></a>
         <a class="link" href="forward_range.html#range.concepts.forward_range.associated_types">Associated
         types</a>
       </h5>
@@ -132,7 +132,7 @@
 </tbody>
 </table></div>
 <a name="range.concepts.forward_range.see_also"></a><h5>
-<a name="id673729"></a>
+<a name="id650211"></a>
         <a class="link" href="forward_range.html#range.concepts.forward_range.see_also">See also</a>
       </h5>
 <p>
Modified: trunk/libs/range/doc/html/range/concepts/random_access_range.html
==============================================================================
--- trunk/libs/range/doc/html/range/concepts/random_access_range.html	(original)
+++ trunk/libs/range/doc/html/range/concepts/random_access_range.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.concepts.random_access_range"></a><a class="link" href="random_access_range.html" title="Random Access Range">Random Access Range</a>
 </h3></div></div></div>
 <a name="range.concepts.random_access_range.description"></a><h5>
-<a name="id674995"></a>
+<a name="id651477"></a>
         <a class="link" href="random_access_range.html#range.concepts.random_access_range.description">Description</a>
       </h5>
 <p>
@@ -35,7 +35,7 @@
         Access Traversal Iterator</a>.
       </p>
 <a name="range.concepts.random_access_range.refinement_of"></a><h5>
-<a name="id675061"></a>
+<a name="id651543"></a>
         <a class="link" href="random_access_range.html#range.concepts.random_access_range.refinement_of">Refinement
         of</a>
       </h5>
@@ -43,7 +43,7 @@
         <a class="link" href="bidirectional_range.html" title="Bidirectional Range">Bidirectional Range</a>
       </p>
 <a name="range.concepts.random_access_range.valid_expressions"></a><h5>
-<a name="id675084"></a>
+<a name="id651566"></a>
         <a class="link" href="random_access_range.html#range.concepts.random_access_range.valid_expressions">Valid
         expressions</a>
       </h5>
@@ -89,7 +89,7 @@
 </tr></tbody>
 </table></div>
 <a name="range.concepts.random_access_range.expression_semantics"></a><h5>
-<a name="id675222"></a>
+<a name="id651704"></a>
         <a class="link" href="random_access_range.html#range.concepts.random_access_range.expression_semantics">Expression
         semantics</a>
       </h5>
@@ -139,7 +139,7 @@
 </tr></tbody>
 </table></div>
 <a name="range.concepts.random_access_range.complexity_guarantees"></a><h5>
-<a name="id675437"></a>
+<a name="id651919"></a>
         <a class="link" href="random_access_range.html#range.concepts.random_access_range.complexity_guarantees">Complexity
         guarantees</a>
       </h5>
@@ -147,7 +147,7 @@
         <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">size</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code> completes in amortized constant time.
       </p>
 <a name="range.concepts.random_access_range.invariants"></a><h5>
-<a name="id675485"></a>
+<a name="id651967"></a>
         <a class="link" href="random_access_range.html#range.concepts.random_access_range.invariants">Invariants</a>
       </h5>
 <div class="informaltable"><table class="table">
Modified: trunk/libs/range/doc/html/range/concepts/single_pass_range.html
==============================================================================
--- trunk/libs/range/doc/html/range/concepts/single_pass_range.html	(original)
+++ trunk/libs/range/doc/html/range/concepts/single_pass_range.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.concepts.single_pass_range"></a><a class="link" href="single_pass_range.html" title="Single Pass Range">Single Pass Range</a>
 </h3></div></div></div>
 <a name="range.concepts.single_pass_range.notation"></a><h5>
-<a name="id672111"></a>
+<a name="id648593"></a>
         <a class="link" href="single_pass_range.html#range.concepts.single_pass_range.notation">Notation</a>
       </h5>
 <div class="informaltable"><table class="table">
@@ -65,7 +65,7 @@
 </tbody>
 </table></div>
 <a name="range.concepts.single_pass_range.description"></a><h5>
-<a name="id672203"></a>
+<a name="id648686"></a>
         <a class="link" href="single_pass_range.html#range.concepts.single_pass_range.description">Description</a>
       </h5>
 <p>
@@ -73,7 +73,7 @@
         Pass Iterator</a>.
       </p>
 <a name="range.concepts.single_pass_range.associated_types"></a><h5>
-<a name="id672269"></a>
+<a name="id648751"></a>
         <a class="link" href="single_pass_range.html#range.concepts.single_pass_range.associated_types">Associated
         types</a>
       </h5>
@@ -126,7 +126,7 @@
 </tbody>
 </table></div>
 <a name="range.concepts.single_pass_range.valid_expressions"></a><h5>
-<a name="id672432"></a>
+<a name="id648914"></a>
         <a class="link" href="single_pass_range.html#range.concepts.single_pass_range.valid_expressions">Valid
         expressions</a>
       </h5>
@@ -198,7 +198,7 @@
 </tbody>
 </table></div>
 <a name="range.concepts.single_pass_range.expression_semantics"></a><h5>
-<a name="id672751"></a>
+<a name="id649233"></a>
         <a class="link" href="single_pass_range.html#range.concepts.single_pass_range.expression_semantics">Expression
         semantics</a>
       </h5>
@@ -266,7 +266,7 @@
 </tbody>
 </table></div>
 <a name="range.concepts.single_pass_range.complexity_guarantees"></a><h5>
-<a name="id673008"></a>
+<a name="id649490"></a>
         <a class="link" href="single_pass_range.html#range.concepts.single_pass_range.complexity_guarantees">Complexity
         guarantees</a>
       </h5>
@@ -276,7 +276,7 @@
         constant time.
       </p>
 <a name="range.concepts.single_pass_range.invariants"></a><h5>
-<a name="id673084"></a>
+<a name="id649567"></a>
         <a class="link" href="single_pass_range.html#range.concepts.single_pass_range.invariants">Invariants</a>
       </h5>
 <div class="informaltable"><table class="table">
@@ -316,7 +316,7 @@
 </tbody>
 </table></div>
 <a name="range.concepts.single_pass_range.see_also"></a><h5>
-<a name="id673341"></a>
+<a name="id649823"></a>
         <a class="link" href="single_pass_range.html#range.concepts.single_pass_range.see_also">See also</a>
       </h5>
 <p>
Modified: trunk/libs/range/doc/html/range/history_ack.html
==============================================================================
--- trunk/libs/range/doc/html/range/history_ack.html	(original)
+++ trunk/libs/range/doc/html/range/history_ack.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -26,7 +26,7 @@
 <a name="range.history_ack"></a><a class="link" href="history_ack.html" title="History and Acknowledgement">History and Acknowledgement</a>
 </h2></div></div></div>
 <a name="range.history_ack.version_1___before_boost_1_43"></a><h4>
-<a name="id805720"></a>
+<a name="id786758"></a>
       <a class="link" href="history_ack.html#range.history_ack.version_1___before_boost_1_43">Version 1 -
       before Boost 1.43</a>
     </h4>
@@ -79,7 +79,7 @@
       The concept checks and their documentation was provided by Daniel Walker.
     </p>
 <a name="range.history_ack.version_2___boost_1_43_and_beyond"></a><h4>
-<a name="id805821"></a>
+<a name="id786859"></a>
       <a class="link" href="history_ack.html#range.history_ack.version_2___boost_1_43_and_beyond">Version
       2 - Boost 1.43 and beyond</a>
     </h4>
Modified: trunk/libs/range/doc/html/range/introduction.html
==============================================================================
--- trunk/libs/range/doc/html/range/introduction.html	(original)
+++ trunk/libs/range/doc/html/range/introduction.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -70,7 +70,7 @@
         </li>
 </ul></div>
 <a name="range.introduction.example___iterate_over_the_values_in_a_map"></a><h4>
-<a name="id630758"></a>
+<a name="id607240"></a>
       <a class="link" href="introduction.html#range.introduction.example___iterate_over_the_values_in_a_map">Example
       - Iterate over the values in a map</a>
     </h4>
@@ -84,7 +84,7 @@
 <p>
     </p>
 <a name="range.introduction.example___iterate_over_the_keys_in_a_map"></a><h4>
-<a name="id630878"></a>
+<a name="id607360"></a>
       <a class="link" href="introduction.html#range.introduction.example___iterate_over_the_keys_in_a_map">Example
       - Iterate over the keys in a map</a>
     </h4>
@@ -98,7 +98,7 @@
 <p>
     </p>
 <a name="range.introduction.example___push_the_even_values_from_a_map_in_reverse_order_into_the_container__code__phrase_role__identifier__target__phrase___code_"></a><h4>
-<a name="id671831"></a>
+<a name="id648314"></a>
       <a class="link" href="introduction.html#range.introduction.example___push_the_even_values_from_a_map_in_reverse_order_into_the_container__code__phrase_role__identifier__target__phrase___code_">Example
       - Push the even values from a map in reverse order into the container <code class="computeroutput"><span class="identifier">target</span></code></a>
     </h4>
Modified: trunk/libs/range/doc/html/range/mfc_atl.html
==============================================================================
--- trunk/libs/range/doc/html/range/mfc_atl.html	(original)
+++ trunk/libs/range/doc/html/range/mfc_atl.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -34,7 +34,7 @@
 <dt><span class="section">References</span></dt>
 </dl></div>
 <a name="range.mfc_atl.introduction"></a><h5>
-<a name="id799247"></a>
+<a name="id780286"></a>
       <a class="link" href="mfc_atl.html#range.mfc_atl.introduction">Introduction</a>
     </h5>
 <p>
@@ -100,7 +100,7 @@
 </tbody>
 </table></div>
 <a name="range.mfc_atl.overview"></a><h5>
-<a name="id799381"></a>
+<a name="id780420"></a>
       <a class="link" href="mfc_atl.html#range.mfc_atl.overview">Overview</a>
     </h5>
 <p>
Modified: trunk/libs/range/doc/html/range/reference.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference.html	(original)
+++ trunk/libs/range/doc/html/range/reference.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -58,6 +58,7 @@
 </dl></dd>
 <dt><span class="section">Provided Ranges</span></dt>
 <dd><dl>
+<dt><span class="section">any_range</span></dt>
 <dt><span class="section">counting_range</span></dt>
 <dt><span class="section">istream_range</span></dt>
 <dt><span class="section">irange</span></dt>
Modified: trunk/libs/range/doc/html/range/reference/adaptors/introduction.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/adaptors/introduction.html	(original)
+++ trunk/libs/range/doc/html/range/reference/adaptors/introduction.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -122,7 +122,7 @@
           situations, you will really appreciate the succinctness of <code class="computeroutput"><span class="keyword">operator</span><span class="special">|()</span></code>.
         </p>
 <a name="range.reference.adaptors.introduction.composition_of_adaptors"></a><h6>
-<a name="id683148"></a>
+<a name="id659630"></a>
           <a class="link" href="introduction.html#range.reference.adaptors.introduction.composition_of_adaptors">Composition
           of Adaptors</a>
         </h6>
@@ -169,7 +169,7 @@
           is the design solution to this problem.
         </p>
 <a name="range.reference.adaptors.introduction.range_adaptor_alternative_to_copy_if_algorithm"></a><h6>
-<a name="id683457"></a>
+<a name="id659939"></a>
           <a class="link" href="introduction.html#range.reference.adaptors.introduction.range_adaptor_alternative_to_copy_if_algorithm">Range
           Adaptor alternative to copy_if algorithm</a>
         </h6>
@@ -186,7 +186,7 @@
 <p>
         </p>
 <a name="range.reference.adaptors.introduction.range_adaptor_alternative_to_count_if_algorithm"></a><h6>
-<a name="id683621"></a>
+<a name="id660104"></a>
           <a class="link" href="introduction.html#range.reference.adaptors.introduction.range_adaptor_alternative_to_count_if_algorithm">Range
           Adaptor alternative to count_if algorithm</a>
         </h6>
Modified: trunk/libs/range/doc/html/range/reference/adaptors/reference.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/adaptors/reference.html	(original)
+++ trunk/libs/range/doc/html/range/reference/adaptors/reference.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -39,6 +39,7 @@
 <dt><span class="section">reversed</span></dt>
 <dt><span class="section">sliced</span></dt>
 <dt><span class="section">strided</span></dt>
+<dt><span class="section">type_erased</span></dt>
 <dt><span class="section">tokenized</span></dt>
 <dt><span class="section">transformed</span></dt>
 <dt><span class="section">uniqued</span></dt>
Modified: trunk/libs/range/doc/html/range/reference/adaptors/reference/strided.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/adaptors/reference/strided.html	(original)
+++ trunk/libs/range/doc/html/range/reference/adaptors/reference/strided.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -7,7 +7,7 @@
 <link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="sliced.html" title="sliced">
-<link rel="next" href="tokenized.html" title="tokenized">
+<link rel="next" href="type_erased.html" title="type_erased">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -20,7 +20,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="sliced.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tokenized.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="sliced.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="type_erased.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h5 class="title">
@@ -143,7 +143,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="sliced.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tokenized.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="sliced.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="type_erased.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>
Modified: trunk/libs/range/doc/html/range/reference/adaptors/reference/tokenized.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/adaptors/reference/tokenized.html	(original)
+++ trunk/libs/range/doc/html/range/reference/adaptors/reference/tokenized.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
 <link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="strided.html" title="strided">
+<link rel="prev" href="type_erased.html" title="type_erased">
 <link rel="next" href="transformed.html" title="transformed">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,7 +20,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="strided.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="transformed.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="type_erased.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="transformed.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h5 class="title">
@@ -149,7 +149,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="strided.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="transformed.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="type_erased.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="transformed.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>
Added: trunk/libs/range/doc/html/range/reference/adaptors/reference/type_erased.html
==============================================================================
--- (empty file)
+++ trunk/libs/range/doc/html/range/reference/adaptors/reference/type_erased.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -0,0 +1,305 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>type_erased</title>
+<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="strided.html" title="strided">
+<link rel="next" href="tokenized.html" title="tokenized">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="strided.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tokenized.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="range.reference.adaptors.reference.type_erased"></a><a class="link" href="type_erased.html" title="type_erased">type_erased</a>
+</h5></div></div></div>
+<div class="toc"><dl><dt><span class="section"><a href="type_erased.html#range.reference.adaptors.reference.type_erased.type_erased_example">type-erased
+            example</a></span></dt></dl></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                    <p>
+                      Syntax
+                    </p>
+                  </th>
+<th>
+                    <p>
+                      Code
+                    </p>
+                  </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                    <p>
+                      Pipe
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      <code class="computeroutput"><span class="identifier">rng</span> <span class="special">|</span>
+                      <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">type_erased</span><span class="special"><</span><span class="identifier">Value</span><span class="special">,</span>
+                      <span class="identifier">Traversal</span><span class="special">,</span>
+                      <span class="identifier">Reference</span><span class="special">,</span>
+                      <span class="identifier">Difference</span><span class="special">,</span>
+                      <span class="identifier">Buffer</span><span class="special">>()</span></code>
+                    </p>
+                  </td>
+</tr>
+<tr>
+<td>
+                    <p>
+                      Function
+                    </p>
+                  </td>
+<td>
+                    <p>
+                      <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">type_erase</span><span class="special">(</span><span class="identifier">rng</span><span class="special">,</span>
+                      <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">type_erased</span><span class="special"><</span><span class="identifier">Value</span><span class="special">,</span>
+                      <span class="identifier">Traversal</span><span class="special">,</span>
+                      <span class="identifier">Reference</span><span class="special">,</span>
+                      <span class="identifier">Difference</span><span class="special">,</span>
+                      <span class="identifier">Buffer</span><span class="special">>)</span></code>
+                    </p>
+                  </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+            Please note that it is frequently unnecessary to use the <code class="computeroutput"><span class="identifier">type_erased</span></code> adaptor. It is often better
+            to use the implicit conversion to <code class="computeroutput"><span class="identifier">any_range</span></code>.
+          </p>
+<p>
+            Let <code class="computeroutput"><span class="identifier">Rng</span></code> be the type of
+            <code class="computeroutput"><span class="identifier">rng</span></code>.
+          </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p class="simpara">
+                <span class="bold"><strong>Template parameters:</strong></span>
+              </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="circle">
+<li class="listitem">
+                    <code class="computeroutput"><span class="identifier">Value</span></code> is the
+                    <code class="computeroutput"><span class="identifier">value_type</span></code> for
+                    the <code class="computeroutput"><span class="identifier">any_range</span></code>.
+                    If this is set to boost::use_default, <code class="computeroutput"><span class="identifier">Value</span></code>
+                    will be calculated from the range type when the adaptor is applied.
+                  </li>
+<li class="listitem">
+                    <code class="computeroutput"><span class="identifier">Traversal</span></code> is
+                    the tag used to identify the traversal of the resultant range.
+                    Frequently it is desireable to set a traversal category lower
+                    than the source container or range to maximize the number of
+                    ranges that can convert to the <code class="computeroutput"><span class="identifier">any_range</span></code>.
+                    If this is left as boost::use_default then <code class="computeroutput"><span class="identifier">Traversal</span></code>
+                    will be <code class="computeroutput"><span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_traversal</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">Rng</span><span class="special">>::</span><span class="identifier">type</span><span class="special">>::</span><span class="identifier">type</span></code>
+                  </li>
+<li class="listitem">
+                    <code class="computeroutput"><span class="identifier">Reference</span></code> is
+                    the <code class="computeroutput"><span class="identifier">reference</span></code>
+                    for the <code class="computeroutput"><span class="identifier">any_range</span></code>.
+                    <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">use_default</span></code> will equate to
+                    <code class="computeroutput"><span class="keyword">typename</span> <span class="identifier">range_reference</span><span class="special"><</span><span class="identifier">Rng</span><span class="special">>::</span><span class="identifier">type</span></code>.
+                  </li>
+<li class="listitem">
+                    <code class="computeroutput"><span class="identifier">Difference</span></code> is
+                    the <code class="computeroutput"><span class="identifier">difference_type</span></code>
+                    for the any_range. <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">use_default</span></code>
+                    will equate to <code class="computeroutput"><span class="keyword">typename</span>
+                    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_difference</span><span class="special"><</span><span class="identifier">Rng</span><span class="special">>::</span><span class="identifier">type</span></code>
+                  </li>
+<li class="listitem">
+                    <code class="computeroutput"><span class="identifier">Buffer</span></code> is the
+                    storage used to allocate the underlying iterator wrappers. This
+                    can typically be ignored, but is available as a template parameter
+                    for customization. Buffer must be a model of the <code class="computeroutput"><span class="identifier">AnyIteratorBufferConcept</span></code>.
+                  </li>
+</ul></div>
+</li>
+<li class="listitem">
+                <span class="bold"><strong>Precondition:</strong></span> <code class="computeroutput"><span class="identifier">Traversal</span></code>
+                is one of <code class="computeroutput"><span class="special">{</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">use_default</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">single_pass_traversal_tag</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">forward_traversal_tag</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">bidirectional_traversal_tag</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">random_access_traversal_tag</span>
+                <span class="special">}</span></code>
+              </li>
+<li class="listitem">
+                <span class="bold"><strong>Returns:</strong></span> The returned value is the
+                same as <code class="computeroutput"><span class="keyword">typename</span> <span class="identifier">any_range_type_generator</span><span class="special"><</span> <span class="identifier">Rng</span><span class="special">,</span> <span class="identifier">Value</span><span class="special">,</span> <span class="identifier">Traversal</span><span class="special">,</span> <span class="identifier">Reference</span><span class="special">,</span> <span class="identifier">Difference</span><span class="special">,</span> <span class="identifier">Buffer</span>
+                <span class="special">></span></code> that represents <code class="computeroutput"><span class="identifier">rng</span></code> in a type-erased manner.
+              </li>
+<li class="listitem">
+                <span class="bold"><strong>Range Category:</strong></span> <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
+                Pass Range</a>
+              </li>
+<li class="listitem">
+                <span class="bold"><strong>Returned Range Category:</strong></span> if <code class="computeroutput"><span class="identifier">Traversal</span></code> was specified as <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">use_default</span></code> then <code class="computeroutput"><span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_traversal</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">Rng</span><span class="special">>::</span><span class="identifier">type</span><span class="special">>::</span><span class="identifier">type</span></code>,
+                otherwise <code class="computeroutput"><span class="identifier">Traversal</span></code>.
+              </li>
+</ul></div>
+<a name="range.reference.adaptors.reference.type_erased.anyiteratorbufferconcept"></a><h6>
+<a name="id677095"></a>
+            <a class="link" href="type_erased.html#range.reference.adaptors.reference.type_erased.anyiteratorbufferconcept">AnyIteratorBufferConcept</a>
+          </h6>
+<p>
+            
+</p>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">AnyIteratorBufferConcept</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+    <span class="identifier">AnyIteratorBufferConcept</span><span class="special">();</span>
+    <span class="special">~</span><span class="identifier">AnyIteratorBufferConcept</span><span class="special">();</span>
+
+    <span class="comment">// bytes is the requested size to allocate. This function
+</span>    <span class="comment">// must return a pointer to an adequate area of memory.
+</span>    <span class="comment">// throws: bad_alloc
+</span>    <span class="comment">//
+</span>    <span class="comment">// The buffer will only ever have zero or one
+</span>    <span class="comment">// outstanding memory allocations.
+</span>    <span class="keyword">void</span><span class="special">*</span> <span class="identifier">allocate</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">bytes</span><span class="special">);</span>
+
+    <span class="comment">// deallocate this buffer
+</span>    <span class="keyword">void</span> <span class="identifier">deallocate</span><span class="special">();</span>
+<span class="special">};</span>
+</pre>
+<p>
+          </p>
+<div class="section">
+<div class="titlepage"><div><div><h6 class="title">
+<a name="range.reference.adaptors.reference.type_erased.type_erased_example"></a><a class="link" href="type_erased.html#range.reference.adaptors.reference.type_erased.type_erased_example" title="type-erased example">type-erased
+            example</a>
+</h6></div></div></div>
+<p>
+              
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">adaptor</span><span class="special">/</span><span class="identifier">type_erased</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">copy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">foreach</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">algorithm</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">list</span><span class="special">></span>
+<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">vector</span><span class="special">></span>
+
+<span class="comment">// The client interface from an OO perspective merely requires a sequence
+</span><span class="comment">// of integers that can be forward traversed
+</span><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">any_range</span><span class="special"><</span>
+    <span class="keyword">int</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">forward_traversal_tag</span>
+  <span class="special">,</span> <span class="keyword">int</span>
+  <span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ptrdiff_t</span>
+<span class="special">></span> <span class="identifier">integer_range</span><span class="special">;</span>
+
+<span class="keyword">namespace</span> <span class="identifier">server</span>
+<span class="special">{</span>
+    <span class="keyword">void</span> <span class="identifier">display_integers</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">integer_range</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">)</span>
+    <span class="special">{</span>
+        <span class="identifier">boost</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span><span class="identifier">rng</span><span class="special">,</span>
+                    <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special"><</span><span class="keyword">int</span><span class="special">>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">,</span> <span class="string">","</span><span class="special">));</span>
+
+        <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+    <span class="special">}</span>
+<span class="special">}</span>
+
+<span class="keyword">namespace</span> <span class="identifier">client</span>
+<span class="special">{</span>
+    <span class="keyword">void</span> <span class="identifier">run</span><span class="special">()</span>
+    <span class="special">{</span>
+        <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">assign</span><span class="special">;</span>
+        <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">;</span>
+
+        <span class="comment">// Under most conditions one would simply use an appropriate
+</span>        <span class="comment">// any_range as a function parameter. The type_erased adaptor
+</span>        <span class="comment">// is often superfluous. However because the type_erased
+</span>        <span class="comment">// adaptor is applied to a range, we can use default template
+</span>        <span class="comment">// arguments that are generated in conjunction with the
+</span>        <span class="comment">// range type to which we are applying the adaptor.
+</span>
+        <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">input</span><span class="special">;</span>
+        <span class="identifier">input</span> <span class="special">+=</span> <span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">4</span><span class="special">,</span><span class="number">5</span><span class="special">;</span>
+
+        <span class="comment">// Note that this call is to a non-template function
+</span>        <span class="identifier">server</span><span class="special">::</span><span class="identifier">display_integers</span><span class="special">(</span><span class="identifier">input</span><span class="special">);</span>
+
+        <span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">input2</span><span class="special">;</span>
+        <span class="identifier">input2</span> <span class="special">+=</span> <span class="number">6</span><span class="special">,</span><span class="number">7</span><span class="special">,</span><span class="number">8</span><span class="special">,</span><span class="number">9</span><span class="special">,</span><span class="number">10</span><span class="special">;</span>
+
+        <span class="comment">// Note that this call is to the same non-tempate function
+</span>        <span class="identifier">server</span><span class="special">::</span><span class="identifier">display_integers</span><span class="special">(</span><span class="identifier">input2</span><span class="special">);</span>
+
+        <span class="identifier">input2</span><span class="special">.</span><span class="identifier">clear</span><span class="special">();</span>
+        <span class="identifier">input2</span> <span class="special">+=</span> <span class="number">11</span><span class="special">,</span><span class="number">12</span><span class="special">,</span><span class="number">13</span><span class="special">,</span><span class="number">14</span><span class="special">,</span><span class="number">15</span><span class="special">;</span>
+
+        <span class="comment">// Calling using the adaptor looks like this:
+</span>        <span class="comment">// Notice that here I have a type_erased that would be a
+</span>        <span class="comment">// bidirectional_traversal_tag, but this is convertible
+</span>        <span class="comment">// to the forward_traversal_tag equivalent hence this
+</span>        <span class="comment">// works.
+</span>        <span class="identifier">server</span><span class="special">::</span><span class="identifier">display_integers</span><span class="special">(</span><span class="identifier">input2</span> <span class="special">|</span> <span class="identifier">type_erased</span><span class="special"><>());</span>
+
+        <span class="comment">// However we may simply wish to define an adaptor that
+</span>        <span class="comment">// takes a range and makes it into an appropriate
+</span>        <span class="comment">// forward_traversal any_range...
+</span>        <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">type_erased</span><span class="special"><</span>
+            <span class="identifier">boost</span><span class="special">::</span><span class="identifier">use_default</span>
+          <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">forward_traversal_tag</span>
+        <span class="special">></span> <span class="identifier">type_erased_forward</span><span class="special">;</span>
+
+        <span class="comment">// This adaptor can turn other containers with different
+</span>        <span class="comment">// value_types and reference_types into the appropriate
+</span>        <span class="comment">// any_range.
+</span>
+        <span class="identifier">server</span><span class="special">::</span><span class="identifier">display_integers</span><span class="special">(</span><span class="identifier">input2</span> <span class="special">|</span> <span class="identifier">type_erased_forward</span><span class="special">());</span>
+    <span class="special">}</span>
+<span class="special">}</span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
+<span class="special">{</span>
+    <span class="identifier">client</span><span class="special">::</span><span class="identifier">run</span><span class="special">();</span>
+    <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+            </p>
+</div>
+<p>
+            This would produce the output: 
+</p>
+<pre class="programlisting"><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">4</span><span class="special">,</span><span class="number">5</span>
+<span class="number">6</span><span class="special">,</span><span class="number">7</span><span class="special">,</span><span class="number">8</span><span class="special">,</span><span class="number">9</span><span class="special">,</span><span class="number">10</span>
+<span class="number">11</span><span class="special">,</span><span class="number">12</span><span class="special">,</span><span class="number">13</span><span class="special">,</span><span class="number">14</span><span class="special">,</span><span class="number">15</span>
+<span class="number">11</span><span class="special">,</span><span class="number">12</span><span class="special">,</span><span class="number">13</span><span class="special">,</span><span class="number">14</span><span class="special">,</span><span class="number">15</span>
+</pre>
+<p>
+          </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
+        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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="strided.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tokenized.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/heap/make_heap.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/heap/make_heap.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/heap/make_heap.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.heap.make_heap"></a><a class="link" href="make_heap.html" title="make_heap">make_heap</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.heap.make_heap.prototype"></a><h6>
-<a name="id761889"></a>
+<a name="id741272"></a>
             <a class="link" href="make_heap.html#range.reference.algorithms.heap.make_heap.prototype">Prototype</a>
           </h6>
 <p>
@@ -48,7 +48,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.heap.make_heap.description"></a><h6>
-<a name="id762263"></a>
+<a name="id741648"></a>
             <a class="link" href="make_heap.html#range.reference.algorithms.heap.make_heap.description">Description</a>
           </h6>
 <p>
@@ -60,14 +60,14 @@
             the predicate versions.
           </p>
 <a name="range.reference.algorithms.heap.make_heap.definition"></a><h6>
-<a name="id762338"></a>
+<a name="id741722"></a>
             <a class="link" href="make_heap.html#range.reference.algorithms.heap.make_heap.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">heap_algorithm</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.heap.make_heap.requirements"></a><h6>
-<a name="id762407"></a>
+<a name="id741791"></a>
             <a class="link" href="make_heap.html#range.reference.algorithms.heap.make_heap.requirements">Requirements</a>
           </h6>
 <p>
@@ -118,7 +118,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.heap.make_heap.complexity"></a><h6>
-<a name="id762655"></a>
+<a name="id742039"></a>
             <a class="link" href="make_heap.html#range.reference.algorithms.heap.make_heap.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/heap/pop_heap.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/heap/pop_heap.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/heap/pop_heap.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.heap.pop_heap"></a><a class="link" href="pop_heap.html" title="pop_heap">pop_heap</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.heap.pop_heap.prototype"></a><h6>
-<a name="id760883"></a>
+<a name="id740266"></a>
             <a class="link" href="pop_heap.html#range.reference.algorithms.heap.pop_heap.prototype">Prototype</a>
           </h6>
 <p>
@@ -48,7 +48,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.heap.pop_heap.description"></a><h6>
-<a name="id761259"></a>
+<a name="id740642"></a>
             <a class="link" href="pop_heap.html#range.reference.algorithms.heap.pop_heap.description">Description</a>
           </h6>
 <p>
@@ -62,14 +62,14 @@
             the predicate versions.
           </p>
 <a name="range.reference.algorithms.heap.pop_heap.definition"></a><h6>
-<a name="id761413"></a>
+<a name="id740796"></a>
             <a class="link" href="pop_heap.html#range.reference.algorithms.heap.pop_heap.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">heap_algorithm</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.heap.pop_heap.requirements"></a><h6>
-<a name="id761483"></a>
+<a name="id740866"></a>
             <a class="link" href="pop_heap.html#range.reference.algorithms.heap.pop_heap.requirements">Requirements</a>
           </h6>
 <p>
@@ -120,7 +120,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.heap.pop_heap.precondition_"></a><h6>
-<a name="id761730"></a>
+<a name="id741114"></a>
             <a class="link" href="pop_heap.html#range.reference.algorithms.heap.pop_heap.precondition_">Precondition:</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -132,7 +132,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.heap.pop_heap.complexity"></a><h6>
-<a name="id761805"></a>
+<a name="id741189"></a>
             <a class="link" href="pop_heap.html#range.reference.algorithms.heap.pop_heap.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/heap/push_heap.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/heap/push_heap.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/heap/push_heap.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.heap.push_heap"></a><a class="link" href="push_heap.html" title="push_heap">push_heap</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.heap.push_heap.prototype"></a><h6>
-<a name="id759838"></a>
+<a name="id739222"></a>
             <a class="link" href="push_heap.html#range.reference.algorithms.heap.push_heap.prototype">Prototype</a>
           </h6>
 <p>
@@ -48,7 +48,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.heap.push_heap.description"></a><h6>
-<a name="id760214"></a>
+<a name="id739596"></a>
             <a class="link" href="push_heap.html#range.reference.algorithms.heap.push_heap.description">Description</a>
           </h6>
 <p>
@@ -62,14 +62,14 @@
             the predicate versions.
           </p>
 <a name="range.reference.algorithms.heap.push_heap.definition"></a><h6>
-<a name="id760372"></a>
+<a name="id739755"></a>
             <a class="link" href="push_heap.html#range.reference.algorithms.heap.push_heap.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">heap_algorithm</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.heap.push_heap.requirements"></a><h6>
-<a name="id760442"></a>
+<a name="id739825"></a>
             <a class="link" href="push_heap.html#range.reference.algorithms.heap.push_heap.requirements">Requirements</a>
           </h6>
 <p>
@@ -120,7 +120,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.heap.push_heap.precondition_"></a><h6>
-<a name="id760690"></a>
+<a name="id740073"></a>
             <a class="link" href="push_heap.html#range.reference.algorithms.heap.push_heap.precondition_">Precondition:</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -132,7 +132,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.heap.push_heap.complexity"></a><h6>
-<a name="id760810"></a>
+<a name="id740193"></a>
             <a class="link" href="push_heap.html#range.reference.algorithms.heap.push_heap.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/heap/sort_heap.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/heap/sort_heap.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/heap/sort_heap.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.heap.sort_heap"></a><a class="link" href="sort_heap.html" title="sort_heap">sort_heap</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.heap.sort_heap.prototype"></a><h6>
-<a name="id762731"></a>
+<a name="id742115"></a>
             <a class="link" href="sort_heap.html#range.reference.algorithms.heap.sort_heap.prototype">Prototype</a>
           </h6>
 <p>
@@ -48,7 +48,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.heap.sort_heap.description"></a><h6>
-<a name="id763106"></a>
+<a name="id742491"></a>
             <a class="link" href="sort_heap.html#range.reference.algorithms.heap.sort_heap.description">Description</a>
           </h6>
 <p>
@@ -61,14 +61,14 @@
             the predicate versions.
           </p>
 <a name="range.reference.algorithms.heap.sort_heap.definition"></a><h6>
-<a name="id763171"></a>
+<a name="id742555"></a>
             <a class="link" href="sort_heap.html#range.reference.algorithms.heap.sort_heap.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">heap_algorithm</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.heap.sort_heap.requirements"></a><h6>
-<a name="id763242"></a>
+<a name="id742626"></a>
             <a class="link" href="sort_heap.html#range.reference.algorithms.heap.sort_heap.requirements">Requirements</a>
           </h6>
 <p>
@@ -119,14 +119,14 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.heap.sort_heap.precondition_"></a><h6>
-<a name="id763489"></a>
+<a name="id742873"></a>
             <a class="link" href="sort_heap.html#range.reference.algorithms.heap.sort_heap.precondition_">Precondition:</a>
           </h6>
 <p>
             <code class="computeroutput"><span class="identifier">rng</span></code> is a heap.
           </p>
 <a name="range.reference.algorithms.heap.sort_heap.complexity"></a><h6>
-<a name="id763522"></a>
+<a name="id742906"></a>
             <a class="link" href="sort_heap.html#range.reference.algorithms.heap.sort_heap.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/copy.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/copy.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/copy.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.copy"></a><a class="link" href="copy.html" title="copy">copy</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.copy.prototype"></a><h6>
-<a name="id704821"></a>
+<a name="id684203"></a>
             <a class="link" href="copy.html#range.reference.algorithms.mutating.copy.prototype">Prototype</a>
           </h6>
 <p>
@@ -39,7 +39,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.copy.description"></a><h6>
-<a name="id704949"></a>
+<a name="id684330"></a>
             <a class="link" href="copy.html#range.reference.algorithms.mutating.copy.description">Description</a>
           </h6>
 <p>
@@ -50,14 +50,14 @@
             <span class="identifier">distance</span><span class="special">(</span><span class="identifier">source_rng</span><span class="special">)</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.copy.definition"></a><h6>
-<a name="id705077"></a>
+<a name="id684459"></a>
             <a class="link" href="copy.html#range.reference.algorithms.mutating.copy.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">copy</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.copy.requirements"></a><h6>
-<a name="id705146"></a>
+<a name="id684528"></a>
             <a class="link" href="copy.html#range.reference.algorithms.mutating.copy.requirements">Requirements</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -78,7 +78,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.copy.precondition_"></a><h6>
-<a name="id705256"></a>
+<a name="id684638"></a>
             <a class="link" href="copy.html#range.reference.algorithms.mutating.copy.precondition_">Precondition:</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -92,7 +92,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.copy.complexity"></a><h6>
-<a name="id705363"></a>
+<a name="id684744"></a>
             <a class="link" href="copy.html#range.reference.algorithms.mutating.copy.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/copy_backward.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/copy_backward.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/copy_backward.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.copy_backward"></a><a class="link" href="copy_backward.html" title="copy_backward">copy_backward</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.copy_backward.prototype"></a><h6>
-<a name="id705426"></a>
+<a name="id684808"></a>
             <a class="link" href="copy_backward.html#range.reference.algorithms.mutating.copy_backward.prototype">Prototype</a>
           </h6>
 <p>
@@ -41,7 +41,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.copy_backward.description"></a><h6>
-<a name="id705554"></a>
+<a name="id684936"></a>
             <a class="link" href="copy_backward.html#range.reference.algorithms.mutating.copy_backward.description">Description</a>
           </h6>
 <p>
@@ -59,14 +59,14 @@
             denotes the <span class="bold"><strong>end</strong></span> of the output sequence.
           </p>
 <a name="range.reference.algorithms.mutating.copy_backward.definition"></a><h6>
-<a name="id705709"></a>
+<a name="id685090"></a>
             <a class="link" href="copy_backward.html#range.reference.algorithms.mutating.copy_backward.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">copy_backward</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.copy_backward.requirements"></a><h6>
-<a name="id705779"></a>
+<a name="id685160"></a>
             <a class="link" href="copy_backward.html#range.reference.algorithms.mutating.copy_backward.requirements">Requirements</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -87,7 +87,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.copy_backward.precondition_"></a><h6>
-<a name="id705889"></a>
+<a name="id685270"></a>
             <a class="link" href="copy_backward.html#range.reference.algorithms.mutating.copy_backward.precondition_">Precondition:</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -101,7 +101,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.copy_backward.complexity"></a><h6>
-<a name="id705996"></a>
+<a name="id685378"></a>
             <a class="link" href="copy_backward.html#range.reference.algorithms.mutating.copy_backward.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/fill.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/fill.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/fill.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.fill"></a><a class="link" href="fill.html" title="fill">fill</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.fill.prototype"></a><h6>
-<a name="id706061"></a>
+<a name="id685443"></a>
             <a class="link" href="fill.html#range.reference.algorithms.mutating.fill.prototype">Prototype</a>
           </h6>
 <p>
@@ -39,7 +39,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.fill.description"></a><h6>
-<a name="id706199"></a>
+<a name="id685579"></a>
             <a class="link" href="fill.html#range.reference.algorithms.mutating.fill.description">Description</a>
           </h6>
 <p>
@@ -48,14 +48,14 @@
             in the range <code class="computeroutput"><span class="identifier">rng</span></code>.
           </p>
 <a name="range.reference.algorithms.mutating.fill.definition"></a><h6>
-<a name="id706253"></a>
+<a name="id685634"></a>
             <a class="link" href="fill.html#range.reference.algorithms.mutating.fill.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">fill</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.fill.requirements"></a><h6>
-<a name="id706322"></a>
+<a name="id685703"></a>
             <a class="link" href="fill.html#range.reference.algorithms.mutating.fill.requirements">Requirements</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -78,7 +78,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.fill.complexity"></a><h6>
-<a name="id706442"></a>
+<a name="id685823"></a>
             <a class="link" href="fill.html#range.reference.algorithms.mutating.fill.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/fill_n.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/fill_n.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/fill_n.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.fill_n"></a><a class="link" href="fill_n.html" title="fill_n">fill_n</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.fill_n.prototype"></a><h6>
-<a name="id706506"></a>
+<a name="id685887"></a>
             <a class="link" href="fill_n.html#range.reference.algorithms.mutating.fill_n.prototype">Prototype</a>
           </h6>
 <p>
@@ -39,7 +39,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.fill_n.description"></a><h6>
-<a name="id706675"></a>
+<a name="id686056"></a>
             <a class="link" href="fill_n.html#range.reference.algorithms.mutating.fill_n.description">Description</a>
           </h6>
 <p>
@@ -47,14 +47,14 @@
             <code class="computeroutput"><span class="identifier">val</span></code> to <code class="computeroutput"><span class="identifier">n</span></code> elements in the range <code class="computeroutput"><span class="identifier">rng</span></code> begining with <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>.
           </p>
 <a name="range.reference.algorithms.mutating.fill_n.definition"></a><h6>
-<a name="id706770"></a>
+<a name="id686152"></a>
             <a class="link" href="fill_n.html#range.reference.algorithms.mutating.fill_n.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">fill_n</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.fill_n.requirements"></a><h6>
-<a name="id706840"></a>
+<a name="id686222"></a>
             <a class="link" href="fill_n.html#range.reference.algorithms.mutating.fill_n.requirements">Requirements</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -77,7 +77,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.fill_n.complexity"></a><h6>
-<a name="id706960"></a>
+<a name="id686341"></a>
             <a class="link" href="fill_n.html#range.reference.algorithms.mutating.fill_n.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/generate.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/generate.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/generate.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.generate"></a><a class="link" href="generate.html" title="generate">generate</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.generate.prototype"></a><h6>
-<a name="id707009"></a>
+<a name="id686391"></a>
             <a class="link" href="generate.html#range.reference.algorithms.mutating.generate.prototype">Prototype</a>
           </h6>
 <p>
@@ -42,7 +42,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.generate.description"></a><h6>
-<a name="id707248"></a>
+<a name="id686629"></a>
             <a class="link" href="generate.html#range.reference.algorithms.mutating.generate.description">Description</a>
           </h6>
 <p>
@@ -52,14 +52,14 @@
             Returns the resultant range.
           </p>
 <a name="range.reference.algorithms.mutating.generate.definition"></a><h6>
-<a name="id707308"></a>
+<a name="id686689"></a>
             <a class="link" href="generate.html#range.reference.algorithms.mutating.generate.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">generate</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.generate.requirements"></a><h6>
-<a name="id707376"></a>
+<a name="id686758"></a>
             <a class="link" href="generate.html#range.reference.algorithms.mutating.generate.requirements">Requirements</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -83,7 +83,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.generate.precondition_"></a><h6>
-<a name="id707508"></a>
+<a name="id686889"></a>
             <a class="link" href="generate.html#range.reference.algorithms.mutating.generate.precondition_">Precondition:</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -97,7 +97,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.generate.complexity"></a><h6>
-<a name="id707614"></a>
+<a name="id686995"></a>
             <a class="link" href="generate.html#range.reference.algorithms.mutating.generate.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/inplace_merge.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/inplace_merge.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/inplace_merge.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.inplace_merge"></a><a class="link" href="inplace_merge.html" title="inplace_merge">inplace_merge</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.inplace_merge.prototype"></a><h6>
-<a name="id707676"></a>
+<a name="id687058"></a>
             <a class="link" href="inplace_merge.html#range.reference.algorithms.mutating.inplace_merge.prototype">Prototype</a>
           </h6>
 <p>
@@ -58,7 +58,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.inplace_merge.description"></a><h6>
-<a name="id708233"></a>
+<a name="id687615"></a>
             <a class="link" href="inplace_merge.html#range.reference.algorithms.mutating.inplace_merge.description">Description</a>
           </h6>
 <p>
@@ -71,14 +71,14 @@
             input range is preserved.
           </p>
 <a name="range.reference.algorithms.mutating.inplace_merge.definition"></a><h6>
-<a name="id708451"></a>
+<a name="id687833"></a>
             <a class="link" href="inplace_merge.html#range.reference.algorithms.mutating.inplace_merge.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">inplace_merge</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.inplace_merge.requirements"></a><h6>
-<a name="id708521"></a>
+<a name="id687903"></a>
             <a class="link" href="inplace_merge.html#range.reference.algorithms.mutating.inplace_merge.requirements">Requirements</a>
           </h6>
 <p>
@@ -115,11 +115,11 @@
             argument types.
           </p>
 <a name="range.reference.algorithms.mutating.inplace_merge.precondition_"></a><h6>
-<a name="id708776"></a>
+<a name="id688158"></a>
             <a class="link" href="inplace_merge.html#range.reference.algorithms.mutating.inplace_merge.precondition_">Precondition:</a>
           </h6>
 <a name="range.reference.algorithms.mutating.inplace_merge.for_the_non_predicate_version_"></a><h6>
-<a name="id708796"></a>
+<a name="id688178"></a>
             <a class="link" href="inplace_merge.html#range.reference.algorithms.mutating.inplace_merge.for_the_non_predicate_version_">For
             the non-predicate version:</a>
           </h6>
@@ -142,7 +142,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.inplace_merge.for_the_predicate_version_"></a><h6>
-<a name="id709058"></a>
+<a name="id688439"></a>
             <a class="link" href="inplace_merge.html#range.reference.algorithms.mutating.inplace_merge.for_the_predicate_version_">For
             the predicate version:</a>
           </h6>
@@ -163,7 +163,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.inplace_merge.complexity"></a><h6>
-<a name="id709343"></a>
+<a name="id688724"></a>
             <a class="link" href="inplace_merge.html#range.reference.algorithms.mutating.inplace_merge.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/merge.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/merge.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/merge.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.merge"></a><a class="link" href="merge.html" title="merge">merge</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.merge.prototype"></a><h6>
-<a name="id709422"></a>
+<a name="id688803"></a>
             <a class="link" href="merge.html#range.reference.algorithms.mutating.merge.prototype">Prototype</a>
           </h6>
 <p>
@@ -56,7 +56,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.merge.description"></a><h6>
-<a name="id709769"></a>
+<a name="id689149"></a>
             <a class="link" href="merge.html#range.reference.algorithms.mutating.merge.description">Description</a>
           </h6>
 <p>
@@ -75,14 +75,14 @@
             version uses the predicate instead of <code class="computeroutput"><span class="keyword">operator</span><span class="special"><()</span></code>.
           </p>
 <a name="range.reference.algorithms.mutating.merge.definition"></a><h6>
-<a name="id709943"></a>
+<a name="id689324"></a>
             <a class="link" href="merge.html#range.reference.algorithms.mutating.merge.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">merge</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.merge.requirements"></a><h6>
-<a name="id710012"></a>
+<a name="id689393"></a>
             <a class="link" href="merge.html#range.reference.algorithms.mutating.merge.requirements">Requirements</a>
           </h6>
 <p>
@@ -150,11 +150,11 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.merge.precondition_"></a><h6>
-<a name="id710533"></a>
+<a name="id689915"></a>
             <a class="link" href="merge.html#range.reference.algorithms.mutating.merge.precondition_">Precondition:</a>
           </h6>
 <a name="range.reference.algorithms.mutating.merge.for_the_non_predicate_version_"></a><h6>
-<a name="id710553"></a>
+<a name="id689935"></a>
             <a class="link" href="merge.html#range.reference.algorithms.mutating.merge.for_the_non_predicate_version_">For
             the non-predicate version:</a>
           </h6>
@@ -194,7 +194,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.merge.for_the_predicate_version_"></a><h6>
-<a name="id711019"></a>
+<a name="id690400"></a>
             <a class="link" href="merge.html#range.reference.algorithms.mutating.merge.for_the_predicate_version_">For
             the predicate version:</a>
           </h6>
@@ -230,7 +230,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.merge.complexity"></a><h6>
-<a name="id711508"></a>
+<a name="id690889"></a>
             <a class="link" href="merge.html#range.reference.algorithms.mutating.merge.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/nth_element.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/nth_element.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/nth_element.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.nth_element"></a><a class="link" href="nth_element.html" title="nth_element">nth_element</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.nth_element.prototype"></a><h6>
-<a name="id711629"></a>
+<a name="id691010"></a>
             <a class="link" href="nth_element.html#range.reference.algorithms.mutating.nth_element.prototype">Prototype</a>
           </h6>
 <p>
@@ -58,7 +58,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.nth_element.description"></a><h6>
-<a name="id712149"></a>
+<a name="id691529"></a>
             <a class="link" href="nth_element.html#range.reference.algorithms.mutating.nth_element.description">Description</a>
           </h6>
 <p>
@@ -69,14 +69,14 @@
             is the same as the element that would be in that position if <code class="computeroutput"><span class="identifier">rng</span></code> has been sorted.
           </p>
 <a name="range.reference.algorithms.mutating.nth_element.definition"></a><h6>
-<a name="id712225"></a>
+<a name="id691606"></a>
             <a class="link" href="nth_element.html#range.reference.algorithms.mutating.nth_element.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">nth_element</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.nth_element.requirements"></a><h6>
-<a name="id712294"></a>
+<a name="id691676"></a>
             <a class="link" href="nth_element.html#range.reference.algorithms.mutating.nth_element.requirements">Requirements</a>
           </h6>
 <p>
@@ -127,7 +127,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.nth_element.complexity"></a><h6>
-<a name="id712542"></a>
+<a name="id691923"></a>
             <a class="link" href="nth_element.html#range.reference.algorithms.mutating.nth_element.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/partial_sort.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/partial_sort.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/partial_sort.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.partial_sort"></a><a class="link" href="partial_sort.html" title="partial_sort">partial_sort</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.partial_sort.prototype"></a><h6>
-<a name="id712607"></a>
+<a name="id691988"></a>
             <a class="link" href="partial_sort.html#range.reference.algorithms.mutating.partial_sort.prototype">Prototype</a>
           </h6>
 <p>
@@ -58,7 +58,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.partial_sort.description"></a><h6>
-<a name="id713128"></a>
+<a name="id692508"></a>
             <a class="link" href="partial_sort.html#range.reference.algorithms.mutating.partial_sort.description">Description</a>
           </h6>
 <p>
@@ -74,14 +74,14 @@
             predicate instead.
           </p>
 <a name="range.reference.algorithms.mutating.partial_sort.definition"></a><h6>
-<a name="id713304"></a>
+<a name="id692685"></a>
             <a class="link" href="partial_sort.html#range.reference.algorithms.mutating.partial_sort.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">partial_sort</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.partial_sort.requirements"></a><h6>
-<a name="id713375"></a>
+<a name="id692756"></a>
             <a class="link" href="partial_sort.html#range.reference.algorithms.mutating.partial_sort.requirements">Requirements</a>
           </h6>
 <p>
@@ -132,7 +132,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.partial_sort.complexity"></a><h6>
-<a name="id713622"></a>
+<a name="id693003"></a>
             <a class="link" href="partial_sort.html#range.reference.algorithms.mutating.partial_sort.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/partition.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/partition.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/partition.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.partition"></a><a class="link" href="partition.html" title="partition">partition</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.partition.prototype"></a><h6>
-<a name="id713738"></a>
+<a name="id693119"></a>
             <a class="link" href="partition.html#range.reference.algorithms.mutating.partition.prototype">Prototype</a>
           </h6>
 <p>
@@ -66,7 +66,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.partition.description"></a><h6>
-<a name="id714315"></a>
+<a name="id693695"></a>
             <a class="link" href="partition.html#range.reference.algorithms.mutating.partition.description">Description</a>
           </h6>
 <p>
@@ -80,14 +80,14 @@
             corresponds to the middle iterator.
           </p>
 <a name="range.reference.algorithms.mutating.partition.definition"></a><h6>
-<a name="id714393"></a>
+<a name="id693774"></a>
             <a class="link" href="partition.html#range.reference.algorithms.mutating.partition.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">partition</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.partition.requirements"></a><h6>
-<a name="id714464"></a>
+<a name="id693845"></a>
             <a class="link" href="partition.html#range.reference.algorithms.mutating.partition.requirements">Requirements</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -107,7 +107,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.partition.complexity"></a><h6>
-<a name="id714566"></a>
+<a name="id693947"></a>
             <a class="link" href="partition.html#range.reference.algorithms.mutating.partition.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/random_shuffle.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/random_shuffle.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/random_shuffle.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.random_shuffle"></a><a class="link" href="random_shuffle.html" title="random_shuffle">random_shuffle</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.random_shuffle.prototype"></a><h6>
-<a name="id714676"></a>
+<a name="id694058"></a>
             <a class="link" href="random_shuffle.html#range.reference.algorithms.mutating.random_shuffle.prototype">Prototype</a>
           </h6>
 <p>
@@ -48,7 +48,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.random_shuffle.description"></a><h6>
-<a name="id715061"></a>
+<a name="id694442"></a>
             <a class="link" href="random_shuffle.html#range.reference.algorithms.mutating.random_shuffle.description">Description</a>
           </h6>
 <p>
@@ -60,14 +60,14 @@
             the shuffles range.
           </p>
 <a name="range.reference.algorithms.mutating.random_shuffle.definition"></a><h6>
-<a name="id715149"></a>
+<a name="id694530"></a>
             <a class="link" href="random_shuffle.html#range.reference.algorithms.mutating.random_shuffle.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">random_shuffle</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.random_shuffle.requirements"></a><h6>
-<a name="id715220"></a>
+<a name="id694601"></a>
             <a class="link" href="random_shuffle.html#range.reference.algorithms.mutating.random_shuffle.requirements">Requirements</a>
           </h6>
 <p>
@@ -98,7 +98,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.random_shuffle.precondition_"></a><h6>
-<a name="id715370"></a>
+<a name="id694751"></a>
             <a class="link" href="random_shuffle.html#range.reference.algorithms.mutating.random_shuffle.precondition_">Precondition:</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
@@ -107,7 +107,7 @@
                 maximum value.
               </li></ul></div>
 <a name="range.reference.algorithms.mutating.random_shuffle.complexity"></a><h6>
-<a name="id715434"></a>
+<a name="id694815"></a>
             <a class="link" href="random_shuffle.html#range.reference.algorithms.mutating.random_shuffle.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/remove.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/remove.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/remove.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.remove"></a><a class="link" href="remove.html" title="remove">remove</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.remove.prototype"></a><h6>
-<a name="id715538"></a>
+<a name="id694919"></a>
             <a class="link" href="remove.html#range.reference.algorithms.mutating.remove.prototype">Prototype</a>
           </h6>
 <p>
@@ -66,7 +66,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.remove.description"></a><h6>
-<a name="id716153"></a>
+<a name="id695536"></a>
             <a class="link" href="remove.html#range.reference.algorithms.mutating.remove.description">Description</a>
           </h6>
 <p>
@@ -83,14 +83,14 @@
             are dereferenceable, but the elements are unspecified.
           </p>
 <a name="range.reference.algorithms.mutating.remove.definition"></a><h6>
-<a name="id716381"></a>
+<a name="id695762"></a>
             <a class="link" href="remove.html#range.reference.algorithms.mutating.remove.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">remove</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.remove.requirements"></a><h6>
-<a name="id716452"></a>
+<a name="id695833"></a>
             <a class="link" href="remove.html#range.reference.algorithms.mutating.remove.requirements">Requirements</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -113,7 +113,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.remove.complexity"></a><h6>
-<a name="id716574"></a>
+<a name="id695954"></a>
             <a class="link" href="remove.html#range.reference.algorithms.mutating.remove.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/remove_copy.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/remove_copy.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/remove_copy.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.remove_copy"></a><a class="link" href="remove_copy.html" title="remove_copy">remove_copy</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.remove_copy.prototype"></a><h6>
-<a name="id716648"></a>
+<a name="id696029"></a>
             <a class="link" href="remove_copy.html#range.reference.algorithms.mutating.remove_copy.prototype">Prototype</a>
           </h6>
 <p>
@@ -44,7 +44,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.remove_copy.description"></a><h6>
-<a name="id716950"></a>
+<a name="id696332"></a>
             <a class="link" href="remove_copy.html#range.reference.algorithms.mutating.remove_copy.description">Description</a>
           </h6>
 <p>
@@ -53,14 +53,14 @@
             <code class="computeroutput"><span class="identifier">rng</span></code> for which <code class="computeroutput"><span class="identifier">x</span> <span class="special">==</span> <span class="identifier">val</span></code> is <code class="computeroutput"><span class="keyword">false</span></code>.
           </p>
 <a name="range.reference.algorithms.mutating.remove_copy.definition"></a><h6>
-<a name="id717037"></a>
+<a name="id696418"></a>
             <a class="link" href="remove_copy.html#range.reference.algorithms.mutating.remove_copy.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">remove_copy</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.remove_copy.requirements"></a><h6>
-<a name="id717107"></a>
+<a name="id696488"></a>
             <a class="link" href="remove_copy.html#range.reference.algorithms.mutating.remove_copy.requirements">Requirements</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -83,7 +83,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.remove_copy.complexity"></a><h6>
-<a name="id717228"></a>
+<a name="id696609"></a>
             <a class="link" href="remove_copy.html#range.reference.algorithms.mutating.remove_copy.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/remove_copy_if.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/remove_copy_if.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/remove_copy_if.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.remove_copy_if"></a><a class="link" href="remove_copy_if.html" title="remove_copy_if">remove_copy_if</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.remove_copy_if.prototype"></a><h6>
-<a name="id717302"></a>
+<a name="id696683"></a>
             <a class="link" href="remove_copy_if.html#range.reference.algorithms.mutating.remove_copy_if.prototype">Prototype</a>
           </h6>
 <p>
@@ -44,7 +44,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.remove_copy_if.description"></a><h6>
-<a name="id717584"></a>
+<a name="id696964"></a>
             <a class="link" href="remove_copy_if.html#range.reference.algorithms.mutating.remove_copy_if.description">Description</a>
           </h6>
 <p>
@@ -54,14 +54,14 @@
             is <code class="computeroutput"><span class="keyword">false</span></code>.
           </p>
 <a name="range.reference.algorithms.mutating.remove_copy_if.definition"></a><h6>
-<a name="id717673"></a>
+<a name="id697054"></a>
             <a class="link" href="remove_copy_if.html#range.reference.algorithms.mutating.remove_copy_if.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">remove_copy_if</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.remove_copy_if.requirements"></a><h6>
-<a name="id717744"></a>
+<a name="id697124"></a>
             <a class="link" href="remove_copy_if.html#range.reference.algorithms.mutating.remove_copy_if.requirements">Requirements</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -79,7 +79,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.remove_copy_if.complexity"></a><h6>
-<a name="id717836"></a>
+<a name="id697217"></a>
             <a class="link" href="remove_copy_if.html#range.reference.algorithms.mutating.remove_copy_if.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/remove_if.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/remove_if.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/remove_if.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.remove_if"></a><a class="link" href="remove_if.html" title="remove_if">remove_if</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.remove_if.prototype"></a><h6>
-<a name="id717910"></a>
+<a name="id697291"></a>
             <a class="link" href="remove_if.html#range.reference.algorithms.mutating.remove_if.prototype">Prototype</a>
           </h6>
 <p>
@@ -66,7 +66,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.remove_if.description"></a><h6>
-<a name="id718485"></a>
+<a name="id697867"></a>
             <a class="link" href="remove_if.html#range.reference.algorithms.mutating.remove_if.description">Description</a>
           </h6>
 <p>
@@ -82,14 +82,14 @@
             are unspecified.
           </p>
 <a name="range.reference.algorithms.mutating.remove_if.definition"></a><h6>
-<a name="id718708"></a>
+<a name="id698089"></a>
             <a class="link" href="remove_if.html#range.reference.algorithms.mutating.remove_if.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">remove_if</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.remove_if.requirements"></a><h6>
-<a name="id718780"></a>
+<a name="id698160"></a>
             <a class="link" href="remove_if.html#range.reference.algorithms.mutating.remove_if.requirements">Requirements</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -112,7 +112,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.remove_if.complexity"></a><h6>
-<a name="id718901"></a>
+<a name="id698282"></a>
             <a class="link" href="remove_if.html#range.reference.algorithms.mutating.remove_if.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/replace.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/replace.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/replace.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.replace"></a><a class="link" href="replace.html" title="replace">replace</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.replace.prototype"></a><h6>
-<a name="id718987"></a>
+<a name="id698368"></a>
             <a class="link" href="replace.html#range.reference.algorithms.mutating.replace.prototype">Prototype</a>
           </h6>
 <p>
@@ -48,7 +48,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.replace.description"></a><h6>
-<a name="id719298"></a>
+<a name="id698680"></a>
             <a class="link" href="replace.html#range.reference.algorithms.mutating.replace.description">Description</a>
           </h6>
 <p>
@@ -57,14 +57,14 @@
             Return a reference to <code class="computeroutput"><span class="identifier">rng</span></code>.
           </p>
 <a name="range.reference.algorithms.mutating.replace.definition"></a><h6>
-<a name="id719374"></a>
+<a name="id698755"></a>
             <a class="link" href="replace.html#range.reference.algorithms.mutating.replace.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">replace</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.replace.requirements"></a><h6>
-<a name="id719445"></a>
+<a name="id698825"></a>
             <a class="link" href="replace.html#range.reference.algorithms.mutating.replace.requirements">Requirements</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -93,7 +93,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.replace.complexity"></a><h6>
-<a name="id719604"></a>
+<a name="id698985"></a>
             <a class="link" href="replace.html#range.reference.algorithms.mutating.replace.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/replace_copy.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/replace_copy.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/replace_copy.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.replace_copy"></a><a class="link" href="replace_copy.html" title="replace_copy">replace_copy</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.replace_copy.prototype"></a><h6>
-<a name="id719703"></a>
+<a name="id699084"></a>
             <a class="link" href="replace_copy.html#range.reference.algorithms.mutating.replace_copy.prototype">Prototype</a>
           </h6>
 <p>
@@ -40,7 +40,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.replace_copy.description"></a><h6>
-<a name="id719899"></a>
+<a name="id699279"></a>
             <a class="link" href="replace_copy.html#range.reference.algorithms.mutating.replace_copy.description">Description</a>
           </h6>
 <p>
@@ -53,14 +53,14 @@
             <span class="identifier">x</span></code>.
           </p>
 <a name="range.reference.algorithms.mutating.replace_copy.definition"></a><h6>
-<a name="id720008"></a>
+<a name="id699388"></a>
             <a class="link" href="replace_copy.html#range.reference.algorithms.mutating.replace_copy.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">replace_copy</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.replace_copy.requirements"></a><h6>
-<a name="id720077"></a>
+<a name="id699458"></a>
             <a class="link" href="replace_copy.html#range.reference.algorithms.mutating.replace_copy.requirements">Requirements</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -87,7 +87,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.replace_copy.complexity"></a><h6>
-<a name="id720225"></a>
+<a name="id699606"></a>
             <a class="link" href="replace_copy.html#range.reference.algorithms.mutating.replace_copy.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/replace_copy_if.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/replace_copy_if.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/replace_copy_if.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.replace_copy_if"></a><a class="link" href="replace_copy_if.html" title="replace_copy_if">replace_copy_if</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.replace_copy_if.prototype"></a><h6>
-<a name="id720299"></a>
+<a name="id699680"></a>
             <a class="link" href="replace_copy_if.html#range.reference.algorithms.mutating.replace_copy_if.prototype">Prototype</a>
           </h6>
 <p>
@@ -40,7 +40,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.replace_copy_if.description"></a><h6>
-<a name="id720501"></a>
+<a name="id699881"></a>
             <a class="link" href="replace_copy_if.html#range.reference.algorithms.mutating.replace_copy_if.description">Description</a>
           </h6>
 <p>
@@ -51,14 +51,14 @@
             <span class="special">:</span> <span class="identifier">x</span></code>.
           </p>
 <a name="range.reference.algorithms.mutating.replace_copy_if.definition"></a><h6>
-<a name="id720612"></a>
+<a name="id699992"></a>
             <a class="link" href="replace_copy_if.html#range.reference.algorithms.mutating.replace_copy_if.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">replace_copy_if</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.replace_copy_if.requirements"></a><h6>
-<a name="id720682"></a>
+<a name="id700063"></a>
             <a class="link" href="replace_copy_if.html#range.reference.algorithms.mutating.replace_copy_if.requirements">Requirements</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -89,7 +89,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.replace_copy_if.complexity"></a><h6>
-<a name="id720858"></a>
+<a name="id700239"></a>
             <a class="link" href="replace_copy_if.html#range.reference.algorithms.mutating.replace_copy_if.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/replace_if.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/replace_if.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/replace_if.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.replace_if"></a><a class="link" href="replace_if.html" title="replace_if">replace_if</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.replace_if.prototype"></a><h6>
-<a name="id720943"></a>
+<a name="id700324"></a>
             <a class="link" href="replace_if.html#range.reference.algorithms.mutating.replace_if.prototype">Prototype</a>
           </h6>
 <p>
@@ -42,7 +42,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.replace_if.description"></a><h6>
-<a name="id721263"></a>
+<a name="id700643"></a>
             <a class="link" href="replace_if.html#range.reference.algorithms.mutating.replace_if.description">Description</a>
           </h6>
 <p>
@@ -51,14 +51,14 @@
             Returns a reference to <code class="computeroutput"><span class="identifier">rng</span></code>.
           </p>
 <a name="range.reference.algorithms.mutating.replace_if.definition"></a><h6>
-<a name="id721373"></a>
+<a name="id700754"></a>
             <a class="link" href="replace_if.html#range.reference.algorithms.mutating.replace_if.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">replace_if</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.replace_if.requirements"></a><h6>
-<a name="id721443"></a>
+<a name="id700825"></a>
             <a class="link" href="replace_if.html#range.reference.algorithms.mutating.replace_if.requirements">Requirements</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -90,7 +90,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.replace_if.complexity"></a><h6>
-<a name="id721620"></a>
+<a name="id701001"></a>
             <a class="link" href="replace_if.html#range.reference.algorithms.mutating.replace_if.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/reverse.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/reverse.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/reverse.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.reverse"></a><a class="link" href="reverse.html" title="reverse">reverse</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.reverse.prototype"></a><h6>
-<a name="id721730"></a>
+<a name="id701111"></a>
             <a class="link" href="reverse.html#range.reference.algorithms.mutating.reverse.prototype">Prototype</a>
           </h6>
 <p>
@@ -42,7 +42,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.reverse.description"></a><h6>
-<a name="id721900"></a>
+<a name="id701281"></a>
             <a class="link" href="reverse.html#range.reference.algorithms.mutating.reverse.description">Description</a>
           </h6>
 <p>
@@ -50,14 +50,14 @@
             Returns a reference to the reversed range.
           </p>
 <a name="range.reference.algorithms.mutating.reverse.definition"></a><h6>
-<a name="id721933"></a>
+<a name="id701314"></a>
             <a class="link" href="reverse.html#range.reference.algorithms.mutating.reverse.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">reverse</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.reverse.requirements"></a><h6>
-<a name="id722003"></a>
+<a name="id701385"></a>
             <a class="link" href="reverse.html#range.reference.algorithms.mutating.reverse.requirements">Requirements</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -72,7 +72,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.reverse.complexity"></a><h6>
-<a name="id722070"></a>
+<a name="id701451"></a>
             <a class="link" href="reverse.html#range.reference.algorithms.mutating.reverse.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/reverse_copy.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/reverse_copy.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/reverse_copy.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.reverse_copy"></a><a class="link" href="reverse_copy.html" title="reverse_copy">reverse_copy</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.reverse_copy.prototype"></a><h6>
-<a name="id722158"></a>
+<a name="id701540"></a>
             <a class="link" href="reverse_copy.html#range.reference.algorithms.mutating.reverse_copy.prototype">Prototype</a>
           </h6>
 <p>
@@ -39,7 +39,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.reverse_copy.description"></a><h6>
-<a name="id722286"></a>
+<a name="id701667"></a>
             <a class="link" href="reverse_copy.html#range.reference.algorithms.mutating.reverse_copy.description">Description</a>
           </h6>
 <p>
@@ -49,14 +49,14 @@
             Returns the output iterator one passed the last copied element.
           </p>
 <a name="range.reference.algorithms.mutating.reverse_copy.definition"></a><h6>
-<a name="id722341"></a>
+<a name="id701723"></a>
             <a class="link" href="reverse_copy.html#range.reference.algorithms.mutating.reverse_copy.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">reverse_copy</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.reverse_copy.requirements"></a><h6>
-<a name="id722411"></a>
+<a name="id701792"></a>
             <a class="link" href="reverse_copy.html#range.reference.algorithms.mutating.reverse_copy.requirements">Requirements</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -75,7 +75,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.reverse_copy.complexity"></a><h6>
-<a name="id722503"></a>
+<a name="id701885"></a>
             <a class="link" href="reverse_copy.html#range.reference.algorithms.mutating.reverse_copy.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/rotate.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/rotate.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/rotate.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.rotate"></a><a class="link" href="rotate.html" title="rotate">rotate</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.rotate.prototype"></a><h6>
-<a name="id722578"></a>
+<a name="id701961"></a>
             <a class="link" href="rotate.html#range.reference.algorithms.mutating.rotate.prototype">Prototype</a>
           </h6>
 <p>
@@ -44,7 +44,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.rotate.description"></a><h6>
-<a name="id722835"></a>
+<a name="id702217"></a>
             <a class="link" href="rotate.html#range.reference.algorithms.mutating.rotate.description">Description</a>
           </h6>
 <p>
@@ -53,14 +53,14 @@
             and <code class="computeroutput"><span class="special">[</span><span class="identifier">middle</span><span class="special">,</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">rng</span><span class="special">))</span></code>. Returns a reference to <code class="computeroutput"><span class="identifier">rng</span></code>.
           </p>
 <a name="range.reference.algorithms.mutating.rotate.definition"></a><h6>
-<a name="id722956"></a>
+<a name="id702338"></a>
             <a class="link" href="rotate.html#range.reference.algorithms.mutating.rotate.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">rotate</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.rotate.requirements"></a><h6>
-<a name="id723026"></a>
+<a name="id702407"></a>
             <a class="link" href="rotate.html#range.reference.algorithms.mutating.rotate.requirements">Requirements</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -74,7 +74,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.rotate.precondition_"></a><h6>
-<a name="id723091"></a>
+<a name="id702473"></a>
             <a class="link" href="rotate.html#range.reference.algorithms.mutating.rotate.precondition_">Precondition:</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -86,7 +86,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.rotate.complexity"></a><h6>
-<a name="id723205"></a>
+<a name="id702586"></a>
             <a class="link" href="rotate.html#range.reference.algorithms.mutating.rotate.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/rotate_copy.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/rotate_copy.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/rotate_copy.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.rotate_copy"></a><a class="link" href="rotate_copy.html" title="rotate_copy">rotate_copy</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.rotate_copy.prototype"></a><h6>
-<a name="id723268"></a>
+<a name="id702649"></a>
             <a class="link" href="rotate_copy.html#range.reference.algorithms.mutating.rotate_copy.prototype">Prototype</a>
           </h6>
 <p>
@@ -42,7 +42,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.rotate_copy.description"></a><h6>
-<a name="id723436"></a>
+<a name="id702817"></a>
             <a class="link" href="rotate_copy.html#range.reference.algorithms.mutating.rotate_copy.description">Description</a>
           </h6>
 <p>
@@ -51,14 +51,14 @@
             and <code class="computeroutput"><span class="special">[</span><span class="identifier">middle</span><span class="special">,</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">rng</span><span class="special">))</span></code> to <code class="computeroutput"><span class="identifier">out</span></code>.
           </p>
 <a name="range.reference.algorithms.mutating.rotate_copy.definition"></a><h6>
-<a name="id723556"></a>
+<a name="id702938"></a>
             <a class="link" href="rotate_copy.html#range.reference.algorithms.mutating.rotate_copy.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">rotate_copy</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.rotate_copy.requirements"></a><h6>
-<a name="id723626"></a>
+<a name="id703007"></a>
             <a class="link" href="rotate_copy.html#range.reference.algorithms.mutating.rotate_copy.requirements">Requirements</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -76,7 +76,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.rotate_copy.precondition_"></a><h6>
-<a name="id723718"></a>
+<a name="id703100"></a>
             <a class="link" href="rotate_copy.html#range.reference.algorithms.mutating.rotate_copy.precondition_">Precondition:</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -88,7 +88,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.rotate_copy.complexity"></a><h6>
-<a name="id723831"></a>
+<a name="id703212"></a>
             <a class="link" href="rotate_copy.html#range.reference.algorithms.mutating.rotate_copy.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/sort.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/sort.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/sort.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.sort"></a><a class="link" href="sort.html" title="sort">sort</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.sort.prototype"></a><h6>
-<a name="id723895"></a>
+<a name="id703276"></a>
             <a class="link" href="sort.html#range.reference.algorithms.mutating.sort.prototype">Prototype</a>
           </h6>
 <p>
@@ -48,7 +48,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.sort.description"></a><h6>
-<a name="id724271"></a>
+<a name="id703652"></a>
             <a class="link" href="sort.html#range.reference.algorithms.mutating.sort.description">Description</a>
           </h6>
 <p>
@@ -71,14 +71,14 @@
             <code class="computeroutput"><span class="special">[</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">]</span></code>, <code class="computeroutput"><span class="identifier">pred</span><span class="special">(</span><span class="identifier">y</span><span class="special">,</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">false</span></code>.
           </p>
 <a name="range.reference.algorithms.mutating.sort.definition"></a><h6>
-<a name="id724514"></a>
+<a name="id703896"></a>
             <a class="link" href="sort.html#range.reference.algorithms.mutating.sort.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">sort</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.sort.requirements"></a><h6>
-<a name="id724584"></a>
+<a name="id703965"></a>
             <a class="link" href="sort.html#range.reference.algorithms.mutating.sort.requirements">Requirements</a>
           </h6>
 <p>
@@ -129,7 +129,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.sort.complexity"></a><h6>
-<a name="id724831"></a>
+<a name="id704212"></a>
             <a class="link" href="sort.html#range.reference.algorithms.mutating.sort.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/stable_partition.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/stable_partition.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/stable_partition.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.stable_partition"></a><a class="link" href="stable_partition.html" title="stable_partition">stable_partition</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.stable_partition.prototype"></a><h6>
-<a name="id724943"></a>
+<a name="id704324"></a>
             <a class="link" href="stable_partition.html#range.reference.algorithms.mutating.stable_partition.prototype">Prototype</a>
           </h6>
 <p>
@@ -60,7 +60,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.stable_partition.description"></a><h6>
-<a name="id725517"></a>
+<a name="id704898"></a>
             <a class="link" href="stable_partition.html#range.reference.algorithms.mutating.stable_partition.description">Description</a>
           </h6>
 <p>
@@ -82,14 +82,14 @@
             the iterator to the first element that fails to satisfy <code class="computeroutput"><span class="identifier">pred</span></code>.
           </p>
 <a name="range.reference.algorithms.mutating.stable_partition.definition"></a><h6>
-<a name="id725657"></a>
+<a name="id705039"></a>
             <a class="link" href="stable_partition.html#range.reference.algorithms.mutating.stable_partition.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">stable_partition</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.stable_partition.requirements"></a><h6>
-<a name="id725728"></a>
+<a name="id705110"></a>
             <a class="link" href="stable_partition.html#range.reference.algorithms.mutating.stable_partition.requirements">Requirements</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -107,7 +107,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.stable_partition.complexity"></a><h6>
-<a name="id725821"></a>
+<a name="id705203"></a>
             <a class="link" href="stable_partition.html#range.reference.algorithms.mutating.stable_partition.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/stable_sort.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/stable_sort.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/stable_sort.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.stable_sort"></a><a class="link" href="stable_sort.html" title="stable_sort">stable_sort</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.stable_sort.prototype"></a><h6>
-<a name="id725988"></a>
+<a name="id705369"></a>
             <a class="link" href="stable_sort.html#range.reference.algorithms.mutating.stable_sort.prototype">Prototype</a>
           </h6>
 <p>
@@ -48,7 +48,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.stable_sort.description"></a><h6>
-<a name="id726364"></a>
+<a name="id705745"></a>
             <a class="link" href="stable_sort.html#range.reference.algorithms.mutating.stable_sort.description">Description</a>
           </h6>
 <p>
@@ -71,14 +71,14 @@
             <code class="computeroutput"><span class="special">[</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">]</span></code>, <code class="computeroutput"><span class="identifier">pred</span><span class="special">(</span><span class="identifier">y</span><span class="special">,</span><span class="identifier">x</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">false</span></code>.
           </p>
 <a name="range.reference.algorithms.mutating.stable_sort.definition"></a><h6>
-<a name="id726607"></a>
+<a name="id705989"></a>
             <a class="link" href="stable_sort.html#range.reference.algorithms.mutating.stable_sort.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">stable_sort</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.stable_sort.requirements"></a><h6>
-<a name="id726678"></a>
+<a name="id706060"></a>
             <a class="link" href="stable_sort.html#range.reference.algorithms.mutating.stable_sort.requirements">Requirements</a>
           </h6>
 <p>
@@ -129,7 +129,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.stable_sort.complexity"></a><h6>
-<a name="id726925"></a>
+<a name="id706307"></a>
             <a class="link" href="stable_sort.html#range.reference.algorithms.mutating.stable_sort.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/swap_ranges.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/swap_ranges.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/swap_ranges.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.swap_ranges"></a><a class="link" href="swap_ranges.html" title="swap_ranges">swap_ranges</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.swap_ranges.prototype"></a><h6>
-<a name="id727103"></a>
+<a name="id706485"></a>
             <a class="link" href="swap_ranges.html#range.reference.algorithms.mutating.swap_ranges.prototype">Prototype</a>
           </h6>
 <p>
@@ -39,7 +39,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.swap_ranges.description"></a><h6>
-<a name="id727235"></a>
+<a name="id706616"></a>
             <a class="link" href="swap_ranges.html#range.reference.algorithms.mutating.swap_ranges.description">Description</a>
           </h6>
 <p>
@@ -49,14 +49,14 @@
             Returns a reference to <code class="computeroutput"><span class="identifier">rng2</span></code>.
           </p>
 <a name="range.reference.algorithms.mutating.swap_ranges.definition"></a><h6>
-<a name="id727322"></a>
+<a name="id706703"></a>
             <a class="link" href="swap_ranges.html#range.reference.algorithms.mutating.swap_ranges.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">swap_ranges</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.swap_ranges.requirements"></a><h6>
-<a name="id727391"></a>
+<a name="id706773"></a>
             <a class="link" href="swap_ranges.html#range.reference.algorithms.mutating.swap_ranges.requirements">Requirements</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -80,7 +80,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.swap_ranges.complexity"></a><h6>
-<a name="id727498"></a>
+<a name="id706880"></a>
             <a class="link" href="swap_ranges.html#range.reference.algorithms.mutating.swap_ranges.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/transform.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/transform.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/transform.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.transform"></a><a class="link" href="transform.html" title="transform">transform</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.transform.prototype"></a><h6>
-<a name="id727563"></a>
+<a name="id706944"></a>
             <a class="link" href="transform.html#range.reference.algorithms.mutating.transform.prototype">Prototype</a>
           </h6>
 <p>
@@ -56,7 +56,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.transform.description"></a><h6>
-<a name="id727897"></a>
+<a name="id707279"></a>
             <a class="link" href="transform.html#range.reference.algorithms.mutating.transform.description">Description</a>
           </h6>
 <p>
@@ -92,14 +92,14 @@
             The return value is <code class="computeroutput"><span class="identifier">out</span> <span class="special">+</span> <span class="identifier">min</span><span class="special">(</span><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">),</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng2</span><span class="special">))</span></code>.
           </p>
 <a name="range.reference.algorithms.mutating.transform.definition"></a><h6>
-<a name="id728436"></a>
+<a name="id707818"></a>
             <a class="link" href="transform.html#range.reference.algorithms.mutating.transform.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transform</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.transform.requirements"></a><h6>
-<a name="id728507"></a>
+<a name="id707889"></a>
             <a class="link" href="transform.html#range.reference.algorithms.mutating.transform.requirements">Requirements</a>
           </h6>
 <p>
@@ -169,7 +169,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.transform.precondition_"></a><h6>
-<a name="id728876"></a>
+<a name="id708258"></a>
             <a class="link" href="transform.html#range.reference.algorithms.mutating.transform.precondition_">Precondition:</a>
           </h6>
 <p>
@@ -203,7 +203,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.transform.complexity"></a><h6>
-<a name="id729299"></a>
+<a name="id708682"></a>
             <a class="link" href="transform.html#range.reference.algorithms.mutating.transform.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/unique.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/unique.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/unique.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.unique"></a><a class="link" href="unique.html" title="unique">unique</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.unique.prototype"></a><h6>
-<a name="id729418"></a>
+<a name="id708800"></a>
             <a class="link" href="unique.html#range.reference.algorithms.mutating.unique.prototype">Prototype</a>
           </h6>
 <p>
@@ -68,7 +68,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.unique.description"></a><h6>
-<a name="id730440"></a>
+<a name="id709822"></a>
             <a class="link" href="unique.html#range.reference.algorithms.mutating.unique.description">Description</a>
           </h6>
 <p>
@@ -86,14 +86,14 @@
             type.
           </p>
 <a name="range.reference.algorithms.mutating.unique.definition"></a><h6>
-<a name="id730558"></a>
+<a name="id709940"></a>
             <a class="link" href="unique.html#range.reference.algorithms.mutating.unique.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">unique</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.unique.requirements"></a><h6>
-<a name="id730628"></a>
+<a name="id710010"></a>
             <a class="link" href="unique.html#range.reference.algorithms.mutating.unique.requirements">Requirements</a>
           </h6>
 <p>
@@ -137,7 +137,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.unique.complexity"></a><h6>
-<a name="id730850"></a>
+<a name="id710232"></a>
             <a class="link" href="unique.html#range.reference.algorithms.mutating.unique.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/mutating/unique_copy.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/mutating/unique_copy.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/mutating/unique_copy.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.mutating.unique_copy"></a><a class="link" href="unique_copy.html" title="unique_copy">unique_copy</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.mutating.unique_copy.prototype"></a><h6>
-<a name="id730972"></a>
+<a name="id710354"></a>
             <a class="link" href="unique_copy.html#range.reference.algorithms.mutating.unique_copy.prototype">Prototype</a>
           </h6>
 <p>
@@ -42,7 +42,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.mutating.unique_copy.description"></a><h6>
-<a name="id731229"></a>
+<a name="id710611"></a>
             <a class="link" href="unique_copy.html#range.reference.algorithms.mutating.unique_copy.description">Description</a>
           </h6>
 <p>
@@ -55,14 +55,14 @@
             value type.
           </p>
 <a name="range.reference.algorithms.mutating.unique_copy.definition"></a><h6>
-<a name="id731314"></a>
+<a name="id710696"></a>
             <a class="link" href="unique_copy.html#range.reference.algorithms.mutating.unique_copy.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">unique_copy</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.mutating.unique_copy.requirements"></a><h6>
-<a name="id731385"></a>
+<a name="id710767"></a>
             <a class="link" href="unique_copy.html#range.reference.algorithms.mutating.unique_copy.requirements">Requirements</a>
           </h6>
 <p>
@@ -116,7 +116,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.mutating.unique_copy.complexity"></a><h6>
-<a name="id731664"></a>
+<a name="id711046"></a>
             <a class="link" href="unique_copy.html#range.reference.algorithms.mutating.unique_copy.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/new/copy_n.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/new/copy_n.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/new/copy_n.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.new.copy_n"></a><a class="link" href="copy_n.html" title="copy_n">copy_n</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.new.copy_n.prototype"></a><h6>
-<a name="id765345"></a>
+<a name="id744730"></a>
             <a class="link" href="copy_n.html#range.reference.algorithms.new.copy_n.prototype">Prototype</a>
           </h6>
 <p>
@@ -39,7 +39,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.new.copy_n.description"></a><h6>
-<a name="id765504"></a>
+<a name="id744888"></a>
             <a class="link" href="copy_n.html#range.reference.algorithms.new.copy_n.description">Description</a>
           </h6>
 <p>
@@ -53,14 +53,14 @@
             from <code class="computeroutput"><span class="special">[</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">),</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">n</span><span class="special">)</span></code> to the range <code class="computeroutput"><span class="special">[</span><span class="identifier">out</span><span class="special">,</span> <span class="identifier">out</span> <span class="special">+</span> <span class="identifier">n</span><span class="special">)</span></code>
           </p>
 <a name="range.reference.algorithms.new.copy_n.definition"></a><h6>
-<a name="id765674"></a>
+<a name="id745058"></a>
             <a class="link" href="copy_n.html#range.reference.algorithms.new.copy_n.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm_ext</span><span class="special">/</span><span class="identifier">copy_n</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.new.copy_n.requirements"></a><h6>
-<a name="id765744"></a>
+<a name="id745129"></a>
             <a class="link" href="copy_n.html#range.reference.algorithms.new.copy_n.requirements">Requirements</a>
           </h6>
 <div class="orderedlist"><ol class="orderedlist" type="1">
@@ -79,7 +79,7 @@
               </li>
 </ol></div>
 <a name="range.reference.algorithms.new.copy_n.complexity"></a><h6>
-<a name="id765852"></a>
+<a name="id745236"></a>
             <a class="link" href="copy_n.html#range.reference.algorithms.new.copy_n.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/new/erase.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/new/erase.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/new/erase.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.new.erase"></a><a class="link" href="erase.html" title="erase">erase</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.new.erase.prototype"></a><h6>
-<a name="id765903"></a>
+<a name="id745287"></a>
             <a class="link" href="erase.html#range.reference.algorithms.new.erase.prototype">Prototype</a>
           </h6>
 <p>
@@ -41,7 +41,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.new.erase.description"></a><h6>
-<a name="id766044"></a>
+<a name="id745427"></a>
             <a class="link" href="erase.html#range.reference.algorithms.new.erase.description">Description</a>
           </h6>
 <p>
@@ -58,14 +58,14 @@
             the frequently used combination equivalent to <code class="computeroutput"><span class="identifier">target</span><span class="special">.</span><span class="identifier">erase</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">remove_if</span><span class="special">(</span><span class="identifier">target</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">target</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">pred</span><span class="special">),</span> <span class="identifier">target</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span></code>
           </p>
 <a name="range.reference.algorithms.new.erase.definition"></a><h6>
-<a name="id766343"></a>
+<a name="id745727"></a>
             <a class="link" href="erase.html#range.reference.algorithms.new.erase.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm_ext</span><span class="special">/</span><span class="identifier">erase</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.new.erase.requirements"></a><h6>
-<a name="id766412"></a>
+<a name="id745796"></a>
             <a class="link" href="erase.html#range.reference.algorithms.new.erase.requirements">Requirements</a>
           </h6>
 <div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
@@ -73,7 +73,7 @@
                 erase of an iterator range.
               </li></ol></div>
 <a name="range.reference.algorithms.new.erase.complexity"></a><h6>
-<a name="id766457"></a>
+<a name="id745840"></a>
             <a class="link" href="erase.html#range.reference.algorithms.new.erase.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/new/for_each.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/new/for_each.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/new/for_each.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.new.for_each"></a><a class="link" href="for_each.html" title="for_each">for_each</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.new.for_each.prototype"></a><h6>
-<a name="id766521"></a>
+<a name="id745904"></a>
             <a class="link" href="for_each.html#range.reference.algorithms.new.for_each.prototype">Prototype</a>
           </h6>
 <p>
@@ -72,7 +72,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.new.for_each.description"></a><h6>
-<a name="id767096"></a>
+<a name="id746478"></a>
             <a class="link" href="for_each.html#range.reference.algorithms.new.for_each.description">Description</a>
           </h6>
 <p>
@@ -88,14 +88,14 @@
             It is safe to call this function with unequal length ranges.
           </p>
 <a name="range.reference.algorithms.new.for_each.definition"></a><h6>
-<a name="id767250"></a>
+<a name="id746634"></a>
             <a class="link" href="for_each.html#range.reference.algorithms.new.for_each.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm_ext</span><span class="special">/</span><span class="identifier">for_each</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.new.for_each.requirements"></a><h6>
-<a name="id767322"></a>
+<a name="id746705"></a>
             <a class="link" href="for_each.html#range.reference.algorithms.new.for_each.requirements">Requirements</a>
           </h6>
 <div class="orderedlist"><ol class="orderedlist" type="1">
@@ -125,7 +125,7 @@
               </li>
 </ol></div>
 <a name="range.reference.algorithms.new.for_each.complexity"></a><h6>
-<a name="id767482"></a>
+<a name="id746866"></a>
             <a class="link" href="for_each.html#range.reference.algorithms.new.for_each.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/new/insert.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/new/insert.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/new/insert.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.new.insert"></a><a class="link" href="insert.html" title="insert">insert</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.new.insert.prototype"></a><h6>
-<a name="id767585"></a>
+<a name="id746969"></a>
             <a class="link" href="insert.html#range.reference.algorithms.new.insert.prototype">Prototype</a>
           </h6>
 <p>
@@ -44,7 +44,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.new.insert.description"></a><h6>
-<a name="id767755"></a>
+<a name="id747139"></a>
             <a class="link" href="insert.html#range.reference.algorithms.new.insert.description">Description</a>
           </h6>
 <p>
@@ -54,14 +54,14 @@
             <code class="computeroutput"><span class="identifier">target</span></code>.
           </p>
 <a name="range.reference.algorithms.new.insert.definition"></a><h6>
-<a name="id767821"></a>
+<a name="id747205"></a>
             <a class="link" href="insert.html#range.reference.algorithms.new.insert.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm_ext</span><span class="special">/</span><span class="identifier">insert</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.new.insert.requirements"></a><h6>
-<a name="id767891"></a>
+<a name="id747275"></a>
             <a class="link" href="insert.html#range.reference.algorithms.new.insert.requirements">Requirements</a>
           </h6>
 <div class="orderedlist"><ol class="orderedlist" type="1">
@@ -81,7 +81,7 @@
               </li>
 </ol></div>
 <a name="range.reference.algorithms.new.insert.complexity"></a><h6>
-<a name="id767989"></a>
+<a name="id747373"></a>
             <a class="link" href="insert.html#range.reference.algorithms.new.insert.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/new/iota.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/new/iota.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/new/iota.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.new.iota"></a><a class="link" href="iota.html" title="iota">iota</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.new.iota.prototype"></a><h6>
-<a name="id768054"></a>
+<a name="id747438"></a>
             <a class="link" href="iota.html#range.reference.algorithms.new.iota.prototype">Prototype</a>
           </h6>
 <p>
@@ -39,7 +39,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.new.iota.description"></a><h6>
-<a name="id768180"></a>
+<a name="id747564"></a>
             <a class="link" href="iota.html#range.reference.algorithms.new.iota.description">Description</a>
           </h6>
 <p>
@@ -50,14 +50,14 @@
             <span class="special">+</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">distance</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">),</span> <span class="identifier">it</span><span class="special">)</span></code>
           </p>
 <a name="range.reference.algorithms.new.iota.definition"></a><h6>
-<a name="id768316"></a>
+<a name="id747700"></a>
             <a class="link" href="iota.html#range.reference.algorithms.new.iota.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm_ext</span><span class="special">/</span><span class="identifier">iota</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.new.iota.requirements"></a><h6>
-<a name="id768386"></a>
+<a name="id747770"></a>
             <a class="link" href="iota.html#range.reference.algorithms.new.iota.requirements">Requirements</a>
           </h6>
 <div class="orderedlist"><ol class="orderedlist" type="1">
@@ -73,7 +73,7 @@
               </li>
 </ol></div>
 <a name="range.reference.algorithms.new.iota.complexity"></a><h6>
-<a name="id768466"></a>
+<a name="id747850"></a>
             <a class="link" href="iota.html#range.reference.algorithms.new.iota.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/new/is_sorted.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/new/is_sorted.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/new/is_sorted.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.new.is_sorted"></a><a class="link" href="is_sorted.html" title="is_sorted">is_sorted</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.new.is_sorted.prototype"></a><h6>
-<a name="id768540"></a>
+<a name="id747924"></a>
             <a class="link" href="is_sorted.html#range.reference.algorithms.new.is_sorted.prototype">Prototype</a>
           </h6>
 <p>
@@ -42,7 +42,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.new.is_sorted.description"></a><h6>
-<a name="id768733"></a>
+<a name="id748118"></a>
             <a class="link" href="is_sorted.html#range.reference.algorithms.new.is_sorted.description">Description</a>
           </h6>
 <p>
@@ -58,14 +58,14 @@
             is <code class="computeroutput"><span class="keyword">true</span></code>.
           </p>
 <a name="range.reference.algorithms.new.is_sorted.definition"></a><h6>
-<a name="id768922"></a>
+<a name="id748306"></a>
             <a class="link" href="is_sorted.html#range.reference.algorithms.new.is_sorted.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm_ext</span><span class="special">/</span><span class="identifier">is_sorted</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.new.is_sorted.requirements"></a><h6>
-<a name="id768992"></a>
+<a name="id748376"></a>
             <a class="link" href="is_sorted.html#range.reference.algorithms.new.is_sorted.requirements">Requirements</a>
           </h6>
 <div class="orderedlist"><ol class="orderedlist" type="1">
@@ -85,7 +85,7 @@
               </li>
 </ol></div>
 <a name="range.reference.algorithms.new.is_sorted.complexity"></a><h6>
-<a name="id769101"></a>
+<a name="id748485"></a>
             <a class="link" href="is_sorted.html#range.reference.algorithms.new.is_sorted.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/new/overwrite.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/new/overwrite.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/new/overwrite.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.new.overwrite"></a><a class="link" href="overwrite.html" title="overwrite">overwrite</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.new.overwrite.prototype"></a><h6>
-<a name="id769166"></a>
+<a name="id748550"></a>
             <a class="link" href="overwrite.html#range.reference.algorithms.new.overwrite.prototype">Prototype</a>
           </h6>
 <p>
@@ -43,7 +43,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.new.overwrite.description"></a><h6>
-<a name="id769300"></a>
+<a name="id748683"></a>
             <a class="link" href="overwrite.html#range.reference.algorithms.new.overwrite.description">Description</a>
           </h6>
 <p>
@@ -52,14 +52,14 @@
             into the range <code class="computeroutput"><span class="identifier">to</span></code>.
           </p>
 <a name="range.reference.algorithms.new.overwrite.definition"></a><h6>
-<a name="id769355"></a>
+<a name="id748739"></a>
             <a class="link" href="overwrite.html#range.reference.algorithms.new.overwrite.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm_ext</span><span class="special">/</span><span class="identifier">overwrite</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.new.overwrite.requirements"></a><h6>
-<a name="id769426"></a>
+<a name="id748810"></a>
             <a class="link" href="overwrite.html#range.reference.algorithms.new.overwrite.requirements">Requirements</a>
           </h6>
 <div class="orderedlist"><ol class="orderedlist" type="1">
@@ -88,7 +88,7 @@
               </li>
 </ol></div>
 <a name="range.reference.algorithms.new.overwrite.complexity"></a><h6>
-<a name="id769603"></a>
+<a name="id748987"></a>
             <a class="link" href="overwrite.html#range.reference.algorithms.new.overwrite.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/new/push_back.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/new/push_back.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/new/push_back.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.new.push_back"></a><a class="link" href="push_back.html" title="push_back">push_back</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.new.push_back.prototype"></a><h6>
-<a name="id769668"></a>
+<a name="id749051"></a>
             <a class="link" href="push_back.html#range.reference.algorithms.new.push_back.prototype">Prototype</a>
           </h6>
 <p>
@@ -43,7 +43,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.new.push_back.description"></a><h6>
-<a name="id769807"></a>
+<a name="id749190"></a>
             <a class="link" href="push_back.html#range.reference.algorithms.new.push_back.description">Description</a>
           </h6>
 <p>
@@ -52,14 +52,14 @@
             to the back of the container <code class="computeroutput"><span class="identifier">target</span></code>.
           </p>
 <a name="range.reference.algorithms.new.push_back.definition"></a><h6>
-<a name="id769862"></a>
+<a name="id749246"></a>
             <a class="link" href="push_back.html#range.reference.algorithms.new.push_back.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm_ext</span><span class="special">/</span><span class="identifier">push_back</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.new.push_back.requirements"></a><h6>
-<a name="id769932"></a>
+<a name="id749316"></a>
             <a class="link" href="push_back.html#range.reference.algorithms.new.push_back.requirements">Requirements</a>
           </h6>
 <div class="orderedlist"><ol class="orderedlist" type="1">
@@ -79,7 +79,7 @@
               </li>
 </ol></div>
 <a name="range.reference.algorithms.new.push_back.complexity"></a><h6>
-<a name="id770044"></a>
+<a name="id749427"></a>
             <a class="link" href="push_back.html#range.reference.algorithms.new.push_back.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/new/push_front.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/new/push_front.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/new/push_front.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.new.push_front"></a><a class="link" href="push_front.html" title="push_front">push_front</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.new.push_front.prototype"></a><h6>
-<a name="id770109"></a>
+<a name="id749493"></a>
             <a class="link" href="push_front.html#range.reference.algorithms.new.push_front.prototype">Prototype</a>
           </h6>
 <p>
@@ -43,7 +43,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.new.push_front.description"></a><h6>
-<a name="id770247"></a>
+<a name="id749631"></a>
             <a class="link" href="push_front.html#range.reference.algorithms.new.push_front.description">Description</a>
           </h6>
 <p>
@@ -52,14 +52,14 @@
             to the front of the container <code class="computeroutput"><span class="identifier">target</span></code>.
           </p>
 <a name="range.reference.algorithms.new.push_front.definition"></a><h6>
-<a name="id770302"></a>
+<a name="id749686"></a>
             <a class="link" href="push_front.html#range.reference.algorithms.new.push_front.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm_ext</span><span class="special">/</span><span class="identifier">push_front</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.new.push_front.requirements"></a><h6>
-<a name="id770372"></a>
+<a name="id749755"></a>
             <a class="link" href="push_front.html#range.reference.algorithms.new.push_front.requirements">Requirements</a>
           </h6>
 <div class="orderedlist"><ol class="orderedlist" type="1">
@@ -79,7 +79,7 @@
               </li>
 </ol></div>
 <a name="range.reference.algorithms.new.push_front.complexity"></a><h6>
-<a name="id770484"></a>
+<a name="id749868"></a>
             <a class="link" href="push_front.html#range.reference.algorithms.new.push_front.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/new/remove_erase.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/new/remove_erase.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/new/remove_erase.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.new.remove_erase"></a><a class="link" href="remove_erase.html" title="remove_erase">remove_erase</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.new.remove_erase.prototype"></a><h6>
-<a name="id770549"></a>
+<a name="id749933"></a>
             <a class="link" href="remove_erase.html#range.reference.algorithms.new.remove_erase.prototype">Prototype</a>
           </h6>
 <p>
@@ -40,7 +40,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.new.remove_erase.description"></a><h6>
-<a name="id770686"></a>
+<a name="id750070"></a>
             <a class="link" href="remove_erase.html#range.reference.algorithms.new.remove_erase.description">Description</a>
           </h6>
 <p>
@@ -50,14 +50,14 @@
             algorithm which merely rearranges elements.
           </p>
 <a name="range.reference.algorithms.new.remove_erase.definition"></a><h6>
-<a name="id770742"></a>
+<a name="id750126"></a>
             <a class="link" href="remove_erase.html#range.reference.algorithms.new.remove_erase.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm_ext</span><span class="special">/</span><span class="identifier">erase</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.new.remove_erase.requirements"></a><h6>
-<a name="id770813"></a>
+<a name="id750197"></a>
             <a class="link" href="remove_erase.html#range.reference.algorithms.new.remove_erase.requirements">Requirements</a>
           </h6>
 <div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
@@ -65,7 +65,7 @@
                 erase of an iterator range.
               </li></ol></div>
 <a name="range.reference.algorithms.new.remove_erase.complexity"></a><h6>
-<a name="id770858"></a>
+<a name="id750242"></a>
             <a class="link" href="remove_erase.html#range.reference.algorithms.new.remove_erase.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/new/remove_erase_if.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/new/remove_erase_if.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/new/remove_erase_if.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.new.remove_erase_if"></a><a class="link" href="remove_erase_if.html" title="remove_erase_if">remove_erase_if</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.new.remove_erase_if.prototype"></a><h6>
-<a name="id770923"></a>
+<a name="id750307"></a>
             <a class="link" href="remove_erase_if.html#range.reference.algorithms.new.remove_erase_if.prototype">Prototype</a>
           </h6>
 <p>
@@ -40,7 +40,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.new.remove_erase_if.description"></a><h6>
-<a name="id771050"></a>
+<a name="id750434"></a>
             <a class="link" href="remove_erase_if.html#range.reference.algorithms.new.remove_erase_if.description">Description</a>
           </h6>
 <p>
@@ -51,14 +51,14 @@
             algorithm which merely rearranges elements.
           </p>
 <a name="range.reference.algorithms.new.remove_erase_if.definition"></a><h6>
-<a name="id771131"></a>
+<a name="id750514"></a>
             <a class="link" href="remove_erase_if.html#range.reference.algorithms.new.remove_erase_if.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm_ext</span><span class="special">/</span><span class="identifier">erase</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.new.remove_erase_if.requirements"></a><h6>
-<a name="id771201"></a>
+<a name="id750585"></a>
             <a class="link" href="remove_erase_if.html#range.reference.algorithms.new.remove_erase_if.requirements">Requirements</a>
           </h6>
 <div class="orderedlist"><ol class="orderedlist" type="1">
@@ -72,7 +72,7 @@
               </li>
 </ol></div>
 <a name="range.reference.algorithms.new.remove_erase_if.complexity"></a><h6>
-<a name="id771275"></a>
+<a name="id750659"></a>
             <a class="link" href="remove_erase_if.html#range.reference.algorithms.new.remove_erase_if.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/adjacent_find.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/adjacent_find.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/adjacent_find.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.non_mutating.adjacent_find"></a><a class="link" href="adjacent_find.html" title="adjacent_find">adjacent_find</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.non_mutating.adjacent_find.prototype"></a><h6>
-<a name="id731803"></a>
+<a name="id711185"></a>
             <a class="link" href="adjacent_find.html#range.reference.algorithms.non_mutating.adjacent_find.prototype">Prototype</a>
           </h6>
 <p>
@@ -76,7 +76,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.non_mutating.adjacent_find.description"></a><h6>
-<a name="id732780"></a>
+<a name="id712162"></a>
             <a class="link" href="adjacent_find.html#range.reference.algorithms.non_mutating.adjacent_find.description">Description</a>
           </h6>
 <p>
@@ -97,14 +97,14 @@
             is <code class="computeroutput"><span class="keyword">true</span></code>.
           </p>
 <a name="range.reference.algorithms.non_mutating.adjacent_find.definition"></a><h6>
-<a name="id732987"></a>
+<a name="id712369"></a>
             <a class="link" href="adjacent_find.html#range.reference.algorithms.non_mutating.adjacent_find.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">adjacent_find</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.non_mutating.adjacent_find.requirements"></a><h6>
-<a name="id733058"></a>
+<a name="id712440"></a>
             <a class="link" href="adjacent_find.html#range.reference.algorithms.non_mutating.adjacent_find.requirements">Requirements</a>
           </h6>
 <p>
@@ -142,7 +142,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.non_mutating.adjacent_find.complexity"></a><h6>
-<a name="id733247"></a>
+<a name="id712629"></a>
             <a class="link" href="adjacent_find.html#range.reference.algorithms.non_mutating.adjacent_find.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/binary_search.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/binary_search.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/binary_search.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.non_mutating.binary_search"></a><a class="link" href="binary_search.html" title="binary_search">binary_search</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.non_mutating.binary_search.prototype"></a><h6>
-<a name="id733347"></a>
+<a name="id712729"></a>
             <a class="link" href="binary_search.html#range.reference.algorithms.non_mutating.binary_search.prototype">Prototype</a>
           </h6>
 <p>
@@ -42,7 +42,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.non_mutating.binary_search.description"></a><h6>
-<a name="id733624"></a>
+<a name="id713006"></a>
             <a class="link" href="binary_search.html#range.reference.algorithms.non_mutating.binary_search.description">Description</a>
           </h6>
 <p>
@@ -52,14 +52,14 @@
             range <code class="computeroutput"><span class="identifier">rng</span></code>.
           </p>
 <a name="range.reference.algorithms.non_mutating.binary_search.definition"></a><h6>
-<a name="id733690"></a>
+<a name="id713072"></a>
             <a class="link" href="binary_search.html#range.reference.algorithms.non_mutating.binary_search.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">binary_search</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.non_mutating.binary_search.requirements"></a><h6>
-<a name="id733760"></a>
+<a name="id713142"></a>
             <a class="link" href="binary_search.html#range.reference.algorithms.non_mutating.binary_search.requirements">Requirements</a>
           </h6>
 <p>
@@ -110,7 +110,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.non_mutating.binary_search.precondition_"></a><h6>
-<a name="id734029"></a>
+<a name="id713411"></a>
             <a class="link" href="binary_search.html#range.reference.algorithms.non_mutating.binary_search.precondition_">Precondition:</a>
           </h6>
 <p>
@@ -128,7 +128,7 @@
             order according to the function object <code class="computeroutput"><span class="identifier">pred</span></code>.
           </p>
 <a name="range.reference.algorithms.non_mutating.binary_search.complexity"></a><h6>
-<a name="id734121"></a>
+<a name="id713503"></a>
             <a class="link" href="binary_search.html#range.reference.algorithms.non_mutating.binary_search.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/count.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/count.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/count.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.non_mutating.count"></a><a class="link" href="count.html" title="count">count</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.non_mutating.count.prototype"></a><h6>
-<a name="id734284"></a>
+<a name="id713666"></a>
             <a class="link" href="count.html#range.reference.algorithms.non_mutating.count.prototype">Prototype</a>
           </h6>
 <p>
@@ -44,7 +44,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.non_mutating.count.description"></a><h6>
-<a name="id734578"></a>
+<a name="id713960"></a>
             <a class="link" href="count.html#range.reference.algorithms.non_mutating.count.description">Description</a>
           </h6>
 <p>
@@ -54,14 +54,14 @@
             is <code class="computeroutput"><span class="keyword">true</span></code>.
           </p>
 <a name="range.reference.algorithms.non_mutating.count.definition"></a><h6>
-<a name="id734666"></a>
+<a name="id714048"></a>
             <a class="link" href="count.html#range.reference.algorithms.non_mutating.count.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">count</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.non_mutating.count.requirements"></a><h6>
-<a name="id734736"></a>
+<a name="id714118"></a>
             <a class="link" href="count.html#range.reference.algorithms.non_mutating.count.requirements">Requirements</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -84,7 +84,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.non_mutating.count.complexity"></a><h6>
-<a name="id734868"></a>
+<a name="id714250"></a>
             <a class="link" href="count.html#range.reference.algorithms.non_mutating.count.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/count_if.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/count_if.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/count_if.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.non_mutating.count_if"></a><a class="link" href="count_if.html" title="count_if">count_if</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.non_mutating.count_if.prototype"></a><h6>
-<a name="id734932"></a>
+<a name="id714315"></a>
             <a class="link" href="count_if.html#range.reference.algorithms.non_mutating.count_if.prototype">Prototype</a>
           </h6>
 <p>
@@ -40,7 +40,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.non_mutating.count_if.description"></a><h6>
-<a name="id735091"></a>
+<a name="id714472"></a>
             <a class="link" href="count_if.html#range.reference.algorithms.non_mutating.count_if.description">Description</a>
           </h6>
 <p>
@@ -50,14 +50,14 @@
             is <code class="computeroutput"><span class="keyword">true</span></code>.
           </p>
 <a name="range.reference.algorithms.non_mutating.count_if.definition"></a><h6>
-<a name="id735180"></a>
+<a name="id714562"></a>
             <a class="link" href="count_if.html#range.reference.algorithms.non_mutating.count_if.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">count_if</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.non_mutating.count_if.requirements"></a><h6>
-<a name="id735249"></a>
+<a name="id714631"></a>
             <a class="link" href="count_if.html#range.reference.algorithms.non_mutating.count_if.requirements">Requirements</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -80,7 +80,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.non_mutating.count_if.complexity"></a><h6>
-<a name="id735381"></a>
+<a name="id714763"></a>
             <a class="link" href="count_if.html#range.reference.algorithms.non_mutating.count_if.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/equal.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/equal.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/equal.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.non_mutating.equal"></a><a class="link" href="equal.html" title="equal">equal</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.non_mutating.equal.prototype"></a><h6>
-<a name="id735456"></a>
+<a name="id714837"></a>
             <a class="link" href="equal.html#range.reference.algorithms.non_mutating.equal.prototype">Prototype</a>
           </h6>
 <p>
@@ -52,7 +52,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.non_mutating.equal.description"></a><h6>
-<a name="id735738"></a>
+<a name="id715120"></a>
             <a class="link" href="equal.html#range.reference.algorithms.non_mutating.equal.description">Description</a>
           </h6>
 <p>
@@ -70,14 +70,14 @@
             considered equal in the predicate version if <code class="computeroutput"><span class="identifier">pred</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">)</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>.
           </p>
 <a name="range.reference.algorithms.non_mutating.equal.definition"></a><h6>
-<a name="id735972"></a>
+<a name="id715354"></a>
             <a class="link" href="equal.html#range.reference.algorithms.non_mutating.equal.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">equal</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.non_mutating.equal.requirements"></a><h6>
-<a name="id736042"></a>
+<a name="id715424"></a>
             <a class="link" href="equal.html#range.reference.algorithms.non_mutating.equal.requirements">Requirements</a>
           </h6>
 <p>
@@ -138,7 +138,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.non_mutating.equal.complexity"></a><h6>
-<a name="id736352"></a>
+<a name="id715734"></a>
             <a class="link" href="equal.html#range.reference.algorithms.non_mutating.equal.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/equal_range.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/equal_range.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/equal_range.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.non_mutating.equal_range"></a><a class="link" href="equal_range.html" title="equal_range">equal_range</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.non_mutating.equal_range.prototype"></a><h6>
-<a name="id736444"></a>
+<a name="id715826"></a>
             <a class="link" href="equal_range.html#range.reference.algorithms.non_mutating.equal_range.prototype">Prototype</a>
           </h6>
 <p>
@@ -70,7 +70,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.non_mutating.equal_range.description"></a><h6>
-<a name="id737315"></a>
+<a name="id716698"></a>
             <a class="link" href="equal_range.html#range.reference.algorithms.non_mutating.equal_range.description">Description</a>
           </h6>
 <p>
@@ -84,14 +84,14 @@
             is determined by <code class="computeroutput"><span class="identifier">pred</span></code>.
           </p>
 <a name="range.reference.algorithms.non_mutating.equal_range.definition"></a><h6>
-<a name="id737458"></a>
+<a name="id716841"></a>
             <a class="link" href="equal_range.html#range.reference.algorithms.non_mutating.equal_range.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">equal_range</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.non_mutating.equal_range.requirements"></a><h6>
-<a name="id737528"></a>
+<a name="id716911"></a>
             <a class="link" href="equal_range.html#range.reference.algorithms.non_mutating.equal_range.requirements">Requirements</a>
           </h6>
 <p>
@@ -142,7 +142,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.non_mutating.equal_range.precondition_"></a><h6>
-<a name="id737797"></a>
+<a name="id717180"></a>
             <a class="link" href="equal_range.html#range.reference.algorithms.non_mutating.equal_range.precondition_">Precondition:</a>
           </h6>
 <p>
@@ -154,7 +154,7 @@
             is ordered in ascending order according to <code class="computeroutput"><span class="identifier">pred</span></code>.
           </p>
 <a name="range.reference.algorithms.non_mutating.equal_range.complexity"></a><h6>
-<a name="id737872"></a>
+<a name="id717254"></a>
             <a class="link" href="equal_range.html#range.reference.algorithms.non_mutating.equal_range.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/find.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/find.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/find.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.non_mutating.find"></a><a class="link" href="find.html" title="find">find</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.non_mutating.find.prototype"></a><h6>
-<a name="id738534"></a>
+<a name="id717917"></a>
             <a class="link" href="find.html#range.reference.algorithms.non_mutating.find.prototype">Prototype</a>
           </h6>
 <p>
@@ -48,7 +48,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.non_mutating.find.description"></a><h6>
-<a name="id738823"></a>
+<a name="id718205"></a>
             <a class="link" href="find.html#range.reference.algorithms.non_mutating.find.description">Description</a>
           </h6>
 <p>
@@ -59,14 +59,14 @@
             same manner as the returned iterator described above.
           </p>
 <a name="range.reference.algorithms.non_mutating.find.definition"></a><h6>
-<a name="id738939"></a>
+<a name="id718322"></a>
             <a class="link" href="find.html#range.reference.algorithms.non_mutating.find.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">find</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.non_mutating.find.requirements"></a><h6>
-<a name="id739009"></a>
+<a name="id718392"></a>
             <a class="link" href="find.html#range.reference.algorithms.non_mutating.find.requirements">Requirements</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -87,7 +87,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.non_mutating.find.complexity"></a><h6>
-<a name="id739128"></a>
+<a name="id718511"></a>
             <a class="link" href="find.html#range.reference.algorithms.non_mutating.find.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/find_end.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/find_end.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/find_end.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.non_mutating.find_end"></a><a class="link" href="find_end.html" title="find_end">find_end</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.non_mutating.find_end.prototype"></a><h6>
-<a name="id739192"></a>
+<a name="id718575"></a>
             <a class="link" href="find_end.html#range.reference.algorithms.non_mutating.find_end.prototype">Prototype</a>
           </h6>
 <p>
@@ -65,7 +65,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.non_mutating.find_end.description"></a><h6>
-<a name="id739851"></a>
+<a name="id719235"></a>
             <a class="link" href="find_end.html#range.reference.algorithms.non_mutating.find_end.description">Description</a>
           </h6>
 <p>
@@ -80,14 +80,14 @@
             same manner as the returned iterator described above.
           </p>
 <a name="range.reference.algorithms.non_mutating.find_end.definition"></a><h6>
-<a name="id739976"></a>
+<a name="id719359"></a>
             <a class="link" href="find_end.html#range.reference.algorithms.non_mutating.find_end.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">find_end</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.non_mutating.find_end.requirements"></a><h6>
-<a name="id740047"></a>
+<a name="id719430"></a>
             <a class="link" href="find_end.html#range.reference.algorithms.non_mutating.find_end.requirements">Requirements</a>
           </h6>
 <p>
@@ -147,7 +147,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.non_mutating.find_end.complexity"></a><h6>
-<a name="id740359"></a>
+<a name="id719742"></a>
             <a class="link" href="find_end.html#range.reference.algorithms.non_mutating.find_end.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/find_first_of.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/find_first_of.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/find_first_of.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.non_mutating.find_first_of"></a><a class="link" href="find_first_of.html" title="find_first_of">find_first_of</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.non_mutating.find_first_of.prototype"></a><h6>
-<a name="id740530"></a>
+<a name="id719912"></a>
             <a class="link" href="find_first_of.html#range.reference.algorithms.non_mutating.find_first_of.prototype">Prototype</a>
           </h6>
 <p>
@@ -65,7 +65,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.non_mutating.find_first_of.description"></a><h6>
-<a name="id741187"></a>
+<a name="id720570"></a>
             <a class="link" href="find_first_of.html#range.reference.algorithms.non_mutating.find_first_of.description">Description</a>
           </h6>
 <p>
@@ -85,14 +85,14 @@
             same manner as the returned iterator described above.
           </p>
 <a name="range.reference.algorithms.non_mutating.find_first_of.definition"></a><h6>
-<a name="id741316"></a>
+<a name="id720699"></a>
             <a class="link" href="find_first_of.html#range.reference.algorithms.non_mutating.find_first_of.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">find_first_of</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.non_mutating.find_first_of.requirements"></a><h6>
-<a name="id741388"></a>
+<a name="id720771"></a>
             <a class="link" href="find_first_of.html#range.reference.algorithms.non_mutating.find_first_of.requirements">Requirements</a>
           </h6>
 <p>
@@ -146,7 +146,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.non_mutating.find_first_of.complexity"></a><h6>
-<a name="id741654"></a>
+<a name="id721037"></a>
             <a class="link" href="find_first_of.html#range.reference.algorithms.non_mutating.find_first_of.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/find_if.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/find_if.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/find_if.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.non_mutating.find_if"></a><a class="link" href="find_if.html" title="find_if">find_if</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.non_mutating.find_if.prototype"></a><h6>
-<a name="id741743"></a>
+<a name="id721127"></a>
             <a class="link" href="find_if.html#range.reference.algorithms.non_mutating.find_if.prototype">Prototype</a>
           </h6>
 <p>
@@ -48,7 +48,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.non_mutating.find_if.description"></a><h6>
-<a name="id742034"></a>
+<a name="id721417"></a>
             <a class="link" href="find_if.html#range.reference.algorithms.non_mutating.find_if.description">Description</a>
           </h6>
 <p>
@@ -63,14 +63,14 @@
             defines found in the same manner as the returned iterator described above.
           </p>
 <a name="range.reference.algorithms.non_mutating.find_if.definition"></a><h6>
-<a name="id742163"></a>
+<a name="id721545"></a>
             <a class="link" href="find_if.html#range.reference.algorithms.non_mutating.find_if.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">find_if</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.non_mutating.find_if.requirements"></a><h6>
-<a name="id742233"></a>
+<a name="id721616"></a>
             <a class="link" href="find_if.html#range.reference.algorithms.non_mutating.find_if.requirements">Requirements</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -89,7 +89,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.non_mutating.find_if.precondition_"></a><h6>
-<a name="id742338"></a>
+<a name="id721721"></a>
             <a class="link" href="find_if.html#range.reference.algorithms.non_mutating.find_if.precondition_">Precondition:</a>
           </h6>
 <p>
@@ -97,7 +97,7 @@
             <code class="computeroutput"><span class="identifier">rng</span></code>, <code class="computeroutput"><span class="special">*</span><span class="identifier">i</span></code> is in the domain of <code class="computeroutput"><span class="identifier">UnaryPredicate</span></code>.
           </p>
 <a name="range.reference.algorithms.non_mutating.find_if.complexity"></a><h6>
-<a name="id742408"></a>
+<a name="id721791"></a>
             <a class="link" href="find_if.html#range.reference.algorithms.non_mutating.find_if.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/for_each.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/for_each.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/for_each.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.non_mutating.for_each"></a><a class="link" href="for_each.html" title="for_each">for_each</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.non_mutating.for_each.prototype"></a><h6>
-<a name="id737966"></a>
+<a name="id717348"></a>
             <a class="link" href="for_each.html#range.reference.algorithms.non_mutating.for_each.prototype">Prototype</a>
           </h6>
 <p>
@@ -48,7 +48,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.non_mutating.for_each.description"></a><h6>
-<a name="id738190"></a>
+<a name="id717573"></a>
             <a class="link" href="for_each.html#range.reference.algorithms.non_mutating.for_each.description">Description</a>
           </h6>
 <p>
@@ -58,14 +58,14 @@
             <code class="computeroutput"><span class="identifier">fun</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code>.
           </p>
 <a name="range.reference.algorithms.non_mutating.for_each.definition"></a><h6>
-<a name="id738268"></a>
+<a name="id717651"></a>
             <a class="link" href="for_each.html#range.reference.algorithms.non_mutating.for_each.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">for_each</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.non_mutating.for_each.requirements"></a><h6>
-<a name="id738339"></a>
+<a name="id717722"></a>
             <a class="link" href="for_each.html#range.reference.algorithms.non_mutating.for_each.requirements">Requirements</a>
           </h6>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -89,7 +89,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.non_mutating.for_each.complexity"></a><h6>
-<a name="id738461"></a>
+<a name="id717844"></a>
             <a class="link" href="for_each.html#range.reference.algorithms.non_mutating.for_each.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/lexicographical_compare.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/lexicographical_compare.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/lexicographical_compare.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.non_mutating.lexicographical_compare"></a><a class="link" href="lexicographical_compare.html" title="lexicographical_compare">lexicographical_compare</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.non_mutating.lexicographical_compare.prototype"></a><h6>
-<a name="id742484"></a>
+<a name="id721867"></a>
             <a class="link" href="lexicographical_compare.html#range.reference.algorithms.non_mutating.lexicographical_compare.prototype">Prototype</a>
           </h6>
 <p>
@@ -52,7 +52,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.non_mutating.lexicographical_compare.description"></a><h6>
-<a name="id742767"></a>
+<a name="id722150"></a>
             <a class="link" href="lexicographical_compare.html#range.reference.algorithms.non_mutating.lexicographical_compare.description">Description</a>
           </h6>
 <p>
@@ -72,14 +72,14 @@
             predicate versions.
           </p>
 <a name="range.reference.algorithms.non_mutating.lexicographical_compare.definition"></a><h6>
-<a name="id742935"></a>
+<a name="id722318"></a>
             <a class="link" href="lexicographical_compare.html#range.reference.algorithms.non_mutating.lexicographical_compare.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">lexicographical_compare</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.non_mutating.lexicographical_compare.requirements"></a><h6>
-<a name="id743006"></a>
+<a name="id722389"></a>
             <a class="link" href="lexicographical_compare.html#range.reference.algorithms.non_mutating.lexicographical_compare.requirements">Requirements</a>
           </h6>
 <p>
@@ -144,7 +144,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.non_mutating.lexicographical_compare.complexity"></a><h6>
-<a name="id743382"></a>
+<a name="id722764"></a>
             <a class="link" href="lexicographical_compare.html#range.reference.algorithms.non_mutating.lexicographical_compare.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/lower_bound.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/lower_bound.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/lower_bound.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.non_mutating.lower_bound"></a><a class="link" href="lower_bound.html" title="lower_bound">lower_bound</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.non_mutating.lower_bound.prototype"></a><h6>
-<a name="id743485"></a>
+<a name="id722868"></a>
             <a class="link" href="lower_bound.html#range.reference.algorithms.non_mutating.lower_bound.prototype">Prototype</a>
           </h6>
 <p>
@@ -48,7 +48,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.non_mutating.lower_bound.description"></a><h6>
-<a name="id743775"></a>
+<a name="id723158"></a>
             <a class="link" href="lower_bound.html#range.reference.algorithms.non_mutating.lower_bound.description">Description</a>
           </h6>
 <p>
@@ -71,14 +71,14 @@
             same manner as the returned iterator described above.
           </p>
 <a name="range.reference.algorithms.non_mutating.lower_bound.definition"></a><h6>
-<a name="id743964"></a>
+<a name="id723347"></a>
             <a class="link" href="lower_bound.html#range.reference.algorithms.non_mutating.lower_bound.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">lower_bound</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.non_mutating.lower_bound.requirements"></a><h6>
-<a name="id744036"></a>
+<a name="id723418"></a>
             <a class="link" href="lower_bound.html#range.reference.algorithms.non_mutating.lower_bound.requirements">Requirements</a>
           </h6>
 <p>
@@ -129,7 +129,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.non_mutating.lower_bound.precondition_"></a><h6>
-<a name="id744304"></a>
+<a name="id723687"></a>
             <a class="link" href="lower_bound.html#range.reference.algorithms.non_mutating.lower_bound.precondition_">Precondition:</a>
           </h6>
 <p>
@@ -147,7 +147,7 @@
             order according to <code class="computeroutput"><span class="identifier">pred</span></code>.
           </p>
 <a name="range.reference.algorithms.non_mutating.lower_bound.complexity"></a><h6>
-<a name="id744397"></a>
+<a name="id723780"></a>
             <a class="link" href="lower_bound.html#range.reference.algorithms.non_mutating.lower_bound.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/max_element.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/max_element.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/max_element.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.non_mutating.max_element"></a><a class="link" href="max_element.html" title="max_element">max_element</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.non_mutating.max_element.prototype"></a><h6>
-<a name="id744536"></a>
+<a name="id723919"></a>
             <a class="link" href="max_element.html#range.reference.algorithms.non_mutating.max_element.prototype">Prototype</a>
           </h6>
 <p>
@@ -83,7 +83,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.non_mutating.max_element.description"></a><h6>
-<a name="id745522"></a>
+<a name="id724905"></a>
             <a class="link" href="max_element.html#range.reference.algorithms.non_mutating.max_element.description">Description</a>
           </h6>
 <p>
@@ -97,14 +97,14 @@
             same manner as the returned iterator described above.
           </p>
 <a name="range.reference.algorithms.non_mutating.max_element.definition"></a><h6>
-<a name="id745616"></a>
+<a name="id725000"></a>
             <a class="link" href="max_element.html#range.reference.algorithms.non_mutating.max_element.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">max_element</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.non_mutating.max_element.requirements"></a><h6>
-<a name="id745688"></a>
+<a name="id725071"></a>
             <a class="link" href="max_element.html#range.reference.algorithms.non_mutating.max_element.requirements">Requirements</a>
           </h6>
 <p>
@@ -141,7 +141,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.non_mutating.max_element.complexity"></a><h6>
-<a name="id745866"></a>
+<a name="id725249"></a>
             <a class="link" href="max_element.html#range.reference.algorithms.non_mutating.max_element.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/min_element.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/min_element.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/min_element.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.non_mutating.min_element"></a><a class="link" href="min_element.html" title="min_element">min_element</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.non_mutating.min_element.prototype"></a><h6>
-<a name="id745965"></a>
+<a name="id725348"></a>
             <a class="link" href="min_element.html#range.reference.algorithms.non_mutating.min_element.prototype">Prototype</a>
           </h6>
 <p>
@@ -83,7 +83,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.non_mutating.min_element.description"></a><h6>
-<a name="id746952"></a>
+<a name="id726335"></a>
             <a class="link" href="min_element.html#range.reference.algorithms.non_mutating.min_element.description">Description</a>
           </h6>
 <p>
@@ -97,14 +97,14 @@
             same manner as the returned iterator described above.
           </p>
 <a name="range.reference.algorithms.non_mutating.min_element.definition"></a><h6>
-<a name="id747046"></a>
+<a name="id726429"></a>
             <a class="link" href="min_element.html#range.reference.algorithms.non_mutating.min_element.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">min_element</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.non_mutating.min_element.requirements"></a><h6>
-<a name="id747117"></a>
+<a name="id726500"></a>
             <a class="link" href="min_element.html#range.reference.algorithms.non_mutating.min_element.requirements">Requirements</a>
           </h6>
 <p>
@@ -141,7 +141,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.non_mutating.min_element.complexity"></a><h6>
-<a name="id747295"></a>
+<a name="id726678"></a>
             <a class="link" href="min_element.html#range.reference.algorithms.non_mutating.min_element.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/mismatch.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/mismatch.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/mismatch.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.non_mutating.mismatch"></a><a class="link" href="mismatch.html" title="mismatch">mismatch</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.non_mutating.mismatch.prototype"></a><h6>
-<a name="id747394"></a>
+<a name="id726777"></a>
             <a class="link" href="mismatch.html#range.reference.algorithms.non_mutating.mismatch.prototype">Prototype</a>
           </h6>
 <p>
@@ -105,7 +105,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.non_mutating.mismatch.description"></a><h6>
-<a name="id749098"></a>
+<a name="id728481"></a>
             <a class="link" href="mismatch.html#range.reference.algorithms.non_mutating.mismatch.description">Description</a>
           </h6>
 <p>
@@ -117,14 +117,14 @@
             Equality is determined by <code class="computeroutput"><span class="keyword">operator</span><span class="special">==</span></code> for non-predicate versions of <code class="computeroutput"><span class="identifier">mismatch</span></code>, and by satisfying <code class="computeroutput"><span class="identifier">pred</span></code> in the predicate versions.
           </p>
 <a name="range.reference.algorithms.non_mutating.mismatch.definition"></a><h6>
-<a name="id749195"></a>
+<a name="id728578"></a>
             <a class="link" href="mismatch.html#range.reference.algorithms.non_mutating.mismatch.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">mismatch</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.non_mutating.mismatch.requirements"></a><h6>
-<a name="id749266"></a>
+<a name="id728648"></a>
             <a class="link" href="mismatch.html#range.reference.algorithms.non_mutating.mismatch.requirements">Requirements</a>
           </h6>
 <p>
@@ -185,14 +185,14 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.non_mutating.mismatch.precondition_"></a><h6>
-<a name="id749576"></a>
+<a name="id728960"></a>
             <a class="link" href="mismatch.html#range.reference.algorithms.non_mutating.mismatch.precondition_">Precondition:</a>
           </h6>
 <p>
             <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng2</span><span class="special">)</span> <span class="special">>=</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">)</span></code>
           </p>
 <a name="range.reference.algorithms.non_mutating.mismatch.complexity"></a><h6>
-<a name="id749649"></a>
+<a name="id729032"></a>
             <a class="link" href="mismatch.html#range.reference.algorithms.non_mutating.mismatch.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/search.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/search.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/search.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.non_mutating.search"></a><a class="link" href="search.html" title="search">search</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.non_mutating.search.prototype"></a><h6>
-<a name="id749713"></a>
+<a name="id729096"></a>
             <a class="link" href="search.html#range.reference.algorithms.non_mutating.search.prototype">Prototype</a>
           </h6>
 <p>
@@ -95,7 +95,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.non_mutating.search.description"></a><h6>
-<a name="id751051"></a>
+<a name="id730434"></a>
             <a class="link" href="search.html#range.reference.algorithms.non_mutating.search.description">Description</a>
           </h6>
 <p>
@@ -114,14 +114,14 @@
             same manner as the returned iterator described above.
           </p>
 <a name="range.reference.algorithms.non_mutating.search.definition"></a><h6>
-<a name="id751214"></a>
+<a name="id730597"></a>
             <a class="link" href="search.html#range.reference.algorithms.non_mutating.search.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">search</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.non_mutating.search.requirements"></a><h6>
-<a name="id751286"></a>
+<a name="id730668"></a>
             <a class="link" href="search.html#range.reference.algorithms.non_mutating.search.requirements">Requirements</a>
           </h6>
 <p>
@@ -182,7 +182,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.non_mutating.search.complexity"></a><h6>
-<a name="id751596"></a>
+<a name="id730979"></a>
             <a class="link" href="search.html#range.reference.algorithms.non_mutating.search.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/search_n.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/search_n.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/search_n.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.non_mutating.search_n"></a><a class="link" href="search_n.html" title="search_n">search_n</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.non_mutating.search_n.prototype"></a><h6>
-<a name="id751637"></a>
+<a name="id731020"></a>
             <a class="link" href="search_n.html#range.reference.algorithms.non_mutating.search_n.prototype">Prototype</a>
           </h6>
 <p>
@@ -54,7 +54,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.non_mutating.search_n.description"></a><h6>
-<a name="id752386"></a>
+<a name="id731769"></a>
             <a class="link" href="search_n.html#range.reference.algorithms.non_mutating.search_n.description">Description</a>
           </h6>
 <p>
@@ -63,14 +63,14 @@
             and by a predicate when one is supplied.
           </p>
 <a name="range.reference.algorithms.non_mutating.search_n.definition"></a><h6>
-<a name="id752453"></a>
+<a name="id731836"></a>
             <a class="link" href="search_n.html#range.reference.algorithms.non_mutating.search_n.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">search_n</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.non_mutating.search_n.requirements"></a><h6>
-<a name="id752524"></a>
+<a name="id731906"></a>
             <a class="link" href="search_n.html#range.reference.algorithms.non_mutating.search_n.requirements">Requirements</a>
           </h6>
 <p>
@@ -124,7 +124,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.non_mutating.search_n.complexity"></a><h6>
-<a name="id752812"></a>
+<a name="id732195"></a>
             <a class="link" href="search_n.html#range.reference.algorithms.non_mutating.search_n.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/upper_bound.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/upper_bound.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/upper_bound.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.non_mutating.upper_bound"></a><a class="link" href="upper_bound.html" title="upper_bound">upper_bound</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.non_mutating.upper_bound.prototype"></a><h6>
-<a name="id752853"></a>
+<a name="id732236"></a>
             <a class="link" href="upper_bound.html#range.reference.algorithms.non_mutating.upper_bound.prototype">Prototype</a>
           </h6>
 <p>
@@ -48,7 +48,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.non_mutating.upper_bound.description"></a><h6>
-<a name="id753142"></a>
+<a name="id732525"></a>
             <a class="link" href="upper_bound.html#range.reference.algorithms.non_mutating.upper_bound.description">Description</a>
           </h6>
 <p>
@@ -70,14 +70,14 @@
             same manner as the returned iterator described above.
           </p>
 <a name="range.reference.algorithms.non_mutating.upper_bound.definition"></a><h6>
-<a name="id753336"></a>
+<a name="id732719"></a>
             <a class="link" href="upper_bound.html#range.reference.algorithms.non_mutating.upper_bound.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">upper_bound</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.non_mutating.upper_bound.requirements"></a><h6>
-<a name="id753407"></a>
+<a name="id732790"></a>
             <a class="link" href="upper_bound.html#range.reference.algorithms.non_mutating.upper_bound.requirements">Requirements</a>
           </h6>
 <p>
@@ -128,7 +128,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.non_mutating.upper_bound.precondition_"></a><h6>
-<a name="id753676"></a>
+<a name="id733059"></a>
             <a class="link" href="upper_bound.html#range.reference.algorithms.non_mutating.upper_bound.precondition_">Precondition:</a>
           </h6>
 <p>
@@ -146,7 +146,7 @@
             order according to <code class="computeroutput"><span class="identifier">pred</span></code>.
           </p>
 <a name="range.reference.algorithms.non_mutating.upper_bound.complexity"></a><h6>
-<a name="id753768"></a>
+<a name="id733150"></a>
             <a class="link" href="upper_bound.html#range.reference.algorithms.non_mutating.upper_bound.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/numeric/accumulate.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/numeric/accumulate.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/numeric/accumulate.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.numeric.accumulate"></a><a class="link" href="accumulate.html" title="accumulate">accumulate</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.numeric.accumulate.prototype"></a><h6>
-<a name="id771357"></a>
+<a name="id750741"></a>
             <a class="link" href="accumulate.html#range.reference.algorithms.numeric.accumulate.prototype">Prototype</a>
           </h6>
 <p>
@@ -52,7 +52,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.numeric.accumulate.description"></a><h6>
-<a name="id771619"></a>
+<a name="id751002"></a>
             <a class="link" href="accumulate.html#range.reference.algorithms.numeric.accumulate.description">Description</a>
           </h6>
 <p>
@@ -63,18 +63,18 @@
             The return value is the resultant value of the above algorithm.
           </p>
 <a name="range.reference.algorithms.numeric.accumulate.definition"></a><h6>
-<a name="id771693"></a>
+<a name="id751077"></a>
             <a class="link" href="accumulate.html#range.reference.algorithms.numeric.accumulate.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.numeric.accumulate.requirements"></a><h6>
-<a name="id771755"></a>
+<a name="id751139"></a>
             <a class="link" href="accumulate.html#range.reference.algorithms.numeric.accumulate.requirements">Requirements</a>
           </h6>
 <a name="range.reference.algorithms.numeric.accumulate.for_the_first_version"></a><h6>
-<a name="id771776"></a>
+<a name="id751160"></a>
             <a class="link" href="accumulate.html#range.reference.algorithms.numeric.accumulate.for_the_first_version">For
             the first version</a>
           </h6>
@@ -99,7 +99,7 @@
               </li>
 </ol></div>
 <a name="range.reference.algorithms.numeric.accumulate.for_the_second_version"></a><h6>
-<a name="id771918"></a>
+<a name="id751302"></a>
             <a class="link" href="accumulate.html#range.reference.algorithms.numeric.accumulate.for_the_second_version">For
             the second version</a>
           </h6>
@@ -133,7 +133,7 @@
               </li>
 </ol></div>
 <a name="range.reference.algorithms.numeric.accumulate.complexity"></a><h6>
-<a name="id772110"></a>
+<a name="id751495"></a>
             <a class="link" href="accumulate.html#range.reference.algorithms.numeric.accumulate.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/numeric/adjacent_difference.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/numeric/adjacent_difference.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/numeric/adjacent_difference.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.numeric.adjacent_difference"></a><a class="link" href="adjacent_difference.html" title="adjacent_difference">adjacent_difference</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.numeric.adjacent_difference.prototype"></a><h6>
-<a name="id772177"></a>
+<a name="id751560"></a>
             <a class="link" href="adjacent_difference.html#range.reference.algorithms.numeric.adjacent_difference.prototype">Prototype</a>
           </h6>
 <p>
@@ -54,7 +54,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.numeric.adjacent_difference.description"></a><h6>
-<a name="id772441"></a>
+<a name="id751824"></a>
             <a class="link" href="adjacent_difference.html#range.reference.algorithms.numeric.adjacent_difference.description">Description</a>
           </h6>
 <p>
@@ -68,18 +68,18 @@
             instead of <code class="computeroutput"><span class="keyword">operator</span><span class="special">-()</span></code>.
           </p>
 <a name="range.reference.algorithms.numeric.adjacent_difference.definition"></a><h6>
-<a name="id772541"></a>
+<a name="id751925"></a>
             <a class="link" href="adjacent_difference.html#range.reference.algorithms.numeric.adjacent_difference.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.numeric.adjacent_difference.requirements"></a><h6>
-<a name="id772603"></a>
+<a name="id751986"></a>
             <a class="link" href="adjacent_difference.html#range.reference.algorithms.numeric.adjacent_difference.requirements">Requirements</a>
           </h6>
 <a name="range.reference.algorithms.numeric.adjacent_difference.for_the_first_version"></a><h6>
-<a name="id772624"></a>
+<a name="id752008"></a>
             <a class="link" href="adjacent_difference.html#range.reference.algorithms.numeric.adjacent_difference.for_the_first_version">For
             the first version</a>
           </h6>
@@ -110,7 +110,7 @@
               </li>
 </ol></div>
 <a name="range.reference.algorithms.numeric.adjacent_difference.for_the_second_version"></a><h6>
-<a name="id772832"></a>
+<a name="id752216"></a>
             <a class="link" href="adjacent_difference.html#range.reference.algorithms.numeric.adjacent_difference.for_the_second_version">For
             the second version</a>
           </h6>
@@ -145,7 +145,7 @@
               </li>
 </ol></div>
 <a name="range.reference.algorithms.numeric.adjacent_difference.precondition_"></a><h6>
-<a name="id773026"></a>
+<a name="id752409"></a>
             <a class="link" href="adjacent_difference.html#range.reference.algorithms.numeric.adjacent_difference.precondition_">Precondition:</a>
           </h6>
 <p>
@@ -153,7 +153,7 @@
             <span class="special">+</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">))</span></code> is a valid range.
           </p>
 <a name="range.reference.algorithms.numeric.adjacent_difference.complexity"></a><h6>
-<a name="id773099"></a>
+<a name="id752483"></a>
             <a class="link" href="adjacent_difference.html#range.reference.algorithms.numeric.adjacent_difference.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/numeric/inner_product.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/numeric/inner_product.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/numeric/inner_product.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.numeric.inner_product"></a><a class="link" href="inner_product.html" title="inner_product">inner_product</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.numeric.inner_product.prototype"></a><h6>
-<a name="id773200"></a>
+<a name="id752584"></a>
             <a class="link" href="inner_product.html#range.reference.algorithms.numeric.inner_product.prototype">Prototype</a>
           </h6>
 <p>
@@ -53,7 +53,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.numeric.inner_product.description"></a><h6>
-<a name="id773562"></a>
+<a name="id752946"></a>
             <a class="link" href="inner_product.html#range.reference.algorithms.numeric.inner_product.description">Description</a>
           </h6>
 <p>
@@ -66,18 +66,18 @@
             algorithm please see inner_product.
           </p>
 <a name="range.reference.algorithms.numeric.inner_product.definition"></a><h6>
-<a name="id773639"></a>
+<a name="id753022"></a>
             <a class="link" href="inner_product.html#range.reference.algorithms.numeric.inner_product.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.numeric.inner_product.requirements"></a><h6>
-<a name="id773700"></a>
+<a name="id753084"></a>
             <a class="link" href="inner_product.html#range.reference.algorithms.numeric.inner_product.requirements">Requirements</a>
           </h6>
 <a name="range.reference.algorithms.numeric.inner_product.for_the_first_version"></a><h6>
-<a name="id773721"></a>
+<a name="id753104"></a>
             <a class="link" href="inner_product.html#range.reference.algorithms.numeric.inner_product.for_the_first_version">For
             the first version</a>
           </h6>
@@ -112,7 +112,7 @@
               </li>
 </ol></div>
 <a name="range.reference.algorithms.numeric.inner_product.for_the_second_version"></a><h6>
-<a name="id773978"></a>
+<a name="id753362"></a>
             <a class="link" href="inner_product.html#range.reference.algorithms.numeric.inner_product.for_the_second_version">For
             the second version</a>
           </h6>
@@ -161,14 +161,14 @@
               </li>
 </ol></div>
 <a name="range.reference.algorithms.numeric.inner_product.precondition_"></a><h6>
-<a name="id774279"></a>
+<a name="id753663"></a>
             <a class="link" href="inner_product.html#range.reference.algorithms.numeric.inner_product.precondition_">Precondition:</a>
           </h6>
 <p>
             <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng2</span><span class="special">)</span> <span class="special">>=</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">)</span></code> is a valid range.
           </p>
 <a name="range.reference.algorithms.numeric.inner_product.complexity"></a><h6>
-<a name="id774351"></a>
+<a name="id753736"></a>
             <a class="link" href="inner_product.html#range.reference.algorithms.numeric.inner_product.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/numeric/partial_sum.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/numeric/partial_sum.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/numeric/partial_sum.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.numeric.partial_sum"></a><a class="link" href="partial_sum.html" title="partial_sum">partial_sum</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.numeric.partial_sum.prototype"></a><h6>
-<a name="id774417"></a>
+<a name="id753801"></a>
             <a class="link" href="partial_sum.html#range.reference.algorithms.numeric.partial_sum.prototype">Prototype</a>
           </h6>
 <p>
@@ -48,7 +48,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.numeric.partial_sum.description"></a><h6>
-<a name="id774675"></a>
+<a name="id754058"></a>
             <a class="link" href="partial_sum.html#range.reference.algorithms.numeric.partial_sum.description">Description</a>
           </h6>
 <p>
@@ -57,18 +57,18 @@
             in the same manner as <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">partial_sum</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">),</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span><span class="identifier">rng</span><span class="special">),</span> <span class="identifier">out_it</span><span class="special">)</span></code>. See partial_sum.
           </p>
 <a name="range.reference.algorithms.numeric.partial_sum.definition"></a><h6>
-<a name="id774814"></a>
+<a name="id754198"></a>
             <a class="link" href="partial_sum.html#range.reference.algorithms.numeric.partial_sum.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.numeric.partial_sum.requirements"></a><h6>
-<a name="id774876"></a>
+<a name="id754259"></a>
             <a class="link" href="partial_sum.html#range.reference.algorithms.numeric.partial_sum.requirements">Requirements</a>
           </h6>
 <a name="range.reference.algorithms.numeric.partial_sum.for_the_first_version"></a><h6>
-<a name="id774896"></a>
+<a name="id754280"></a>
             <a class="link" href="partial_sum.html#range.reference.algorithms.numeric.partial_sum.for_the_first_version">For
             the first version</a>
           </h6>
@@ -98,7 +98,7 @@
               </li>
 </ol></div>
 <a name="range.reference.algorithms.numeric.partial_sum.for_the_second_version"></a><h6>
-<a name="id775103"></a>
+<a name="id754487"></a>
             <a class="link" href="partial_sum.html#range.reference.algorithms.numeric.partial_sum.for_the_second_version">For
             the second version</a>
           </h6>
@@ -127,7 +127,7 @@
               </li>
 </ol></div>
 <a name="range.reference.algorithms.numeric.partial_sum.precondition_"></a><h6>
-<a name="id775268"></a>
+<a name="id754652"></a>
             <a class="link" href="partial_sum.html#range.reference.algorithms.numeric.partial_sum.precondition_">Precondition:</a>
           </h6>
 <p>
@@ -135,7 +135,7 @@
             <span class="special">+</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">))</span></code> is a valid range.
           </p>
 <a name="range.reference.algorithms.numeric.partial_sum.complexity"></a><h6>
-<a name="id775342"></a>
+<a name="id754726"></a>
             <a class="link" href="partial_sum.html#range.reference.algorithms.numeric.partial_sum.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/permutation/next_permutation.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/permutation/next_permutation.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/permutation/next_permutation.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.permutation.next_permutation"></a><a class="link" href="next_permutation.html" title="next_permutation">next_permutation</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.permutation.next_permutation.prototype"></a><h6>
-<a name="id763648"></a>
+<a name="id743032"></a>
             <a class="link" href="next_permutation.html#range.reference.algorithms.permutation.next_permutation.prototype">Prototype</a>
           </h6>
 <p>
@@ -48,7 +48,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.permutation.next_permutation.description"></a><h6>
-<a name="id763995"></a>
+<a name="id743378"></a>
             <a class="link" href="next_permutation.html#range.reference.algorithms.permutation.next_permutation.description">Description</a>
           </h6>
 <p>
@@ -66,14 +66,14 @@
             the predicate versions.
           </p>
 <a name="range.reference.algorithms.permutation.next_permutation.definition"></a><h6>
-<a name="id764093"></a>
+<a name="id743477"></a>
             <a class="link" href="next_permutation.html#range.reference.algorithms.permutation.next_permutation.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">permutation</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.permutation.next_permutation.requirements"></a><h6>
-<a name="id764164"></a>
+<a name="id743548"></a>
             <a class="link" href="next_permutation.html#range.reference.algorithms.permutation.next_permutation.requirements">Requirements</a>
           </h6>
 <p>
@@ -124,7 +124,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.permutation.next_permutation.complexity"></a><h6>
-<a name="id764412"></a>
+<a name="id743796"></a>
             <a class="link" href="next_permutation.html#range.reference.algorithms.permutation.next_permutation.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/permutation/prev_permutation.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/permutation/prev_permutation.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/permutation/prev_permutation.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.permutation.prev_permutation"></a><a class="link" href="prev_permutation.html" title="prev_permutation">prev_permutation</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.permutation.prev_permutation.prototype"></a><h6>
-<a name="id764488"></a>
+<a name="id743872"></a>
             <a class="link" href="prev_permutation.html#range.reference.algorithms.permutation.prev_permutation.prototype">Prototype</a>
           </h6>
 <p>
@@ -48,7 +48,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.permutation.prev_permutation.description"></a><h6>
-<a name="id764835"></a>
+<a name="id744218"></a>
             <a class="link" href="prev_permutation.html#range.reference.algorithms.permutation.prev_permutation.description">Description</a>
           </h6>
 <p>
@@ -66,14 +66,14 @@
             the predicate versions.
           </p>
 <a name="range.reference.algorithms.permutation.prev_permutation.definition"></a><h6>
-<a name="id764934"></a>
+<a name="id744318"></a>
             <a class="link" href="prev_permutation.html#range.reference.algorithms.permutation.prev_permutation.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">permutation</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.permutation.prev_permutation.requirements"></a><h6>
-<a name="id765005"></a>
+<a name="id744389"></a>
             <a class="link" href="prev_permutation.html#range.reference.algorithms.permutation.prev_permutation.requirements">Requirements</a>
           </h6>
 <p>
@@ -124,7 +124,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.permutation.prev_permutation.complexity"></a><h6>
-<a name="id765254"></a>
+<a name="id744638"></a>
             <a class="link" href="prev_permutation.html#range.reference.algorithms.permutation.prev_permutation.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/set/includes.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/set/includes.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/set/includes.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.set.includes"></a><a class="link" href="includes.html" title="includes">includes</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.set.includes.prototype"></a><h6>
-<a name="id753918"></a>
+<a name="id733300"></a>
             <a class="link" href="includes.html#range.reference.algorithms.set.includes.prototype">Prototype</a>
           </h6>
 <p>
@@ -47,7 +47,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.set.includes.description"></a><h6>
-<a name="id754197"></a>
+<a name="id733580"></a>
             <a class="link" href="includes.html#range.reference.algorithms.set.includes.description">Description</a>
           </h6>
 <p>
@@ -59,14 +59,14 @@
             the predicate versions.
           </p>
 <a name="range.reference.algorithms.set.includes.definition"></a><h6>
-<a name="id754291"></a>
+<a name="id733674"></a>
             <a class="link" href="includes.html#range.reference.algorithms.set.includes.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">set_algorithm</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.set.includes.requirements"></a><h6>
-<a name="id754360"></a>
+<a name="id733743"></a>
             <a class="link" href="includes.html#range.reference.algorithms.set.includes.requirements">Requirements</a>
           </h6>
 <p>
@@ -144,7 +144,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.set.includes.precondition_"></a><h6>
-<a name="id754770"></a>
+<a name="id734152"></a>
             <a class="link" href="includes.html#range.reference.algorithms.set.includes.precondition_">Precondition:</a>
           </h6>
 <p>
@@ -162,7 +162,7 @@
             according to <code class="computeroutput"><span class="identifier">pred</span></code>.
           </p>
 <a name="range.reference.algorithms.set.includes.complexity"></a><h6>
-<a name="id754883"></a>
+<a name="id734266"></a>
             <a class="link" href="includes.html#range.reference.algorithms.set.includes.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/set/set_difference.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/set/set_difference.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/set/set_difference.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.set.set_difference"></a><a class="link" href="set_difference.html" title="set_difference">set_difference</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.set.set_difference.prototype"></a><h6>
-<a name="id757410"></a>
+<a name="id736793"></a>
             <a class="link" href="set_difference.html#range.reference.algorithms.set.set_difference.prototype">Prototype</a>
           </h6>
 <p>
@@ -56,7 +56,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.set.set_difference.description"></a><h6>
-<a name="id757755"></a>
+<a name="id737139"></a>
             <a class="link" href="set_difference.html#range.reference.algorithms.set.set_difference.description">Description</a>
           </h6>
 <p>
@@ -70,14 +70,14 @@
             the predicate versions.
           </p>
 <a name="range.reference.algorithms.set.set_difference.definition"></a><h6>
-<a name="id757843"></a>
+<a name="id737226"></a>
             <a class="link" href="set_difference.html#range.reference.algorithms.set.set_difference.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">set_algorithm</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.set.set_difference.requirements"></a><h6>
-<a name="id757914"></a>
+<a name="id737297"></a>
             <a class="link" href="set_difference.html#range.reference.algorithms.set.set_difference.requirements">Requirements</a>
           </h6>
 <p>
@@ -163,7 +163,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.set.set_difference.precondition_"></a><h6>
-<a name="id758380"></a>
+<a name="id737763"></a>
             <a class="link" href="set_difference.html#range.reference.algorithms.set.set_difference.precondition_">Precondition:</a>
           </h6>
 <p>
@@ -181,7 +181,7 @@
             according to <code class="computeroutput"><span class="identifier">pred</span></code>.
           </p>
 <a name="range.reference.algorithms.set.set_difference.complexity"></a><h6>
-<a name="id758494"></a>
+<a name="id737877"></a>
             <a class="link" href="set_difference.html#range.reference.algorithms.set.set_difference.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/set/set_intersection.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/set/set_intersection.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/set/set_intersection.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.set.set_intersection"></a><a class="link" href="set_intersection.html" title="set_intersection">set_intersection</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.set.set_intersection.prototype"></a><h6>
-<a name="id756205"></a>
+<a name="id735588"></a>
             <a class="link" href="set_intersection.html#range.reference.algorithms.set.set_intersection.prototype">Prototype</a>
           </h6>
 <p>
@@ -56,7 +56,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.set.set_intersection.description"></a><h6>
-<a name="id756550"></a>
+<a name="id735934"></a>
             <a class="link" href="set_intersection.html#range.reference.algorithms.set.set_intersection.description">Description</a>
           </h6>
 <p>
@@ -70,14 +70,14 @@
             the predicate versions.
           </p>
 <a name="range.reference.algorithms.set.set_intersection.definition"></a><h6>
-<a name="id756638"></a>
+<a name="id736021"></a>
             <a class="link" href="set_intersection.html#range.reference.algorithms.set.set_intersection.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">set_algorithm</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.set.set_intersection.requirements"></a><h6>
-<a name="id756708"></a>
+<a name="id736091"></a>
             <a class="link" href="set_intersection.html#range.reference.algorithms.set.set_intersection.requirements">Requirements</a>
           </h6>
 <p>
@@ -163,7 +163,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.set.set_intersection.precondition_"></a><h6>
-<a name="id757174"></a>
+<a name="id736557"></a>
             <a class="link" href="set_intersection.html#range.reference.algorithms.set.set_intersection.precondition_">Precondition:</a>
           </h6>
 <p>
@@ -181,7 +181,7 @@
             according to <code class="computeroutput"><span class="identifier">pred</span></code>.
           </p>
 <a name="range.reference.algorithms.set.set_intersection.complexity"></a><h6>
-<a name="id757288"></a>
+<a name="id736671"></a>
             <a class="link" href="set_intersection.html#range.reference.algorithms.set.set_intersection.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/set/set_symmetric_difference.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/set/set_symmetric_difference.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/set/set_symmetric_difference.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.set.set_symmetric_difference"></a><a class="link" href="set_symmetric_difference.html" title="set_symmetric_difference">set_symmetric_difference</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.set.set_symmetric_difference.prototype"></a><h6>
-<a name="id758617"></a>
+<a name="id738000"></a>
             <a class="link" href="set_symmetric_difference.html#range.reference.algorithms.set.set_symmetric_difference.prototype">Prototype</a>
           </h6>
 <p>
@@ -58,7 +58,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.set.set_symmetric_difference.description"></a><h6>
-<a name="id758964"></a>
+<a name="id738347"></a>
             <a class="link" href="set_symmetric_difference.html#range.reference.algorithms.set.set_symmetric_difference.description">Description</a>
           </h6>
 <p>
@@ -74,14 +74,14 @@
             the predicate versions.
           </p>
 <a name="range.reference.algorithms.set.set_symmetric_difference.definition"></a><h6>
-<a name="id759051"></a>
+<a name="id738434"></a>
             <a class="link" href="set_symmetric_difference.html#range.reference.algorithms.set.set_symmetric_difference.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">set_algorithm</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.set.set_symmetric_difference.requirements"></a><h6>
-<a name="id759121"></a>
+<a name="id738504"></a>
             <a class="link" href="set_symmetric_difference.html#range.reference.algorithms.set.set_symmetric_difference.requirements">Requirements</a>
           </h6>
 <p>
@@ -167,7 +167,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.set.set_symmetric_difference.precondition_"></a><h6>
-<a name="id759586"></a>
+<a name="id738968"></a>
             <a class="link" href="set_symmetric_difference.html#range.reference.algorithms.set.set_symmetric_difference.precondition_">Precondition:</a>
           </h6>
 <p>
@@ -185,7 +185,7 @@
             according to <code class="computeroutput"><span class="identifier">pred</span></code>.
           </p>
 <a name="range.reference.algorithms.set.set_symmetric_difference.complexity"></a><h6>
-<a name="id759700"></a>
+<a name="id739082"></a>
             <a class="link" href="set_symmetric_difference.html#range.reference.algorithms.set.set_symmetric_difference.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/algorithms/set/set_union.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/algorithms/set/set_union.html	(original)
+++ trunk/libs/range/doc/html/range/reference/algorithms/set/set_union.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.algorithms.set.set_union"></a><a class="link" href="set_union.html" title="set_union">set_union</a>
 </h5></div></div></div>
 <a name="range.reference.algorithms.set.set_union.prototype"></a><h6>
-<a name="id755005"></a>
+<a name="id734387"></a>
             <a class="link" href="set_union.html#range.reference.algorithms.set.set_union.prototype">Prototype</a>
           </h6>
 <p>
@@ -56,7 +56,7 @@
 <p>
           </p>
 <a name="range.reference.algorithms.set.set_union.description"></a><h6>
-<a name="id755350"></a>
+<a name="id734733"></a>
             <a class="link" href="set_union.html#range.reference.algorithms.set.set_union.description">Description</a>
           </h6>
 <p>
@@ -69,14 +69,14 @@
             in the predicate versions.
           </p>
 <a name="range.reference.algorithms.set.set_union.definition"></a><h6>
-<a name="id755434"></a>
+<a name="id734816"></a>
             <a class="link" href="set_union.html#range.reference.algorithms.set.set_union.definition">Definition</a>
           </h6>
 <p>
             Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">set_algorithm</span><span class="special">.</span><span class="identifier">hpp</span></code>
           </p>
 <a name="range.reference.algorithms.set.set_union.requirements"></a><h6>
-<a name="id755504"></a>
+<a name="id734887"></a>
             <a class="link" href="set_union.html#range.reference.algorithms.set.set_union.requirements">Requirements</a>
           </h6>
 <p>
@@ -162,7 +162,7 @@
               </li>
 </ul></div>
 <a name="range.reference.algorithms.set.set_union.precondition_"></a><h6>
-<a name="id755969"></a>
+<a name="id735352"></a>
             <a class="link" href="set_union.html#range.reference.algorithms.set.set_union.precondition_">Precondition:</a>
           </h6>
 <p>
@@ -180,7 +180,7 @@
             according to <code class="computeroutput"><span class="identifier">pred</span></code>.
           </p>
 <a name="range.reference.algorithms.set.set_union.complexity"></a><h6>
-<a name="id756082"></a>
+<a name="id735465"></a>
             <a class="link" href="set_union.html#range.reference.algorithms.set.set_union.complexity">Complexity</a>
           </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/concept_implementation/semantics.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/concept_implementation/semantics.html	(original)
+++ trunk/libs/range/doc/html/range/reference/concept_implementation/semantics.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -31,7 +31,7 @@
 <dt><span class="section">Functions</span></dt>
 </dl></div>
 <a name="range.reference.concept_implementation.semantics.notation"></a><h6>
-<a name="id678218"></a>
+<a name="id654700"></a>
           <a class="link" href="semantics.html#range.reference.concept_implementation.semantics.notation">notation</a>
         </h6>
 <div class="informaltable"><table class="table">
Modified: trunk/libs/range/doc/html/range/reference/ranges.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/ranges.html	(original)
+++ trunk/libs/range/doc/html/range/reference/ranges.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -7,7 +7,7 @@
 <link rel="home" href="../../index.html" title="Chapter 1. Range 2.0">
 <link rel="up" href="../reference.html" title="Reference">
 <link rel="prev" href="algorithms/numeric/partial_sum.html" title="partial_sum">
-<link rel="next" href="ranges/counting_range.html" title="counting_range">
+<link rel="next" href="ranges/any_range.html" title="any_range">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr>
@@ -20,13 +20,14 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="algorithms/numeric/partial_sum.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="ranges/counting_range.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="algorithms/numeric/partial_sum.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="ranges/any_range.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="range.reference.ranges"></a><a class="link" href="ranges.html" title="Provided Ranges">Provided Ranges</a>
 </h3></div></div></div>
 <div class="toc"><dl>
+<dt><span class="section">any_range</span></dt>
 <dt><span class="section">counting_range</span></dt>
 <dt><span class="section">istream_range</span></dt>
 <dt><span class="section">irange</span></dt>
@@ -42,7 +43,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="algorithms/numeric/partial_sum.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="ranges/counting_range.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="algorithms/numeric/partial_sum.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="ranges/any_range.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>
Added: trunk/libs/range/doc/html/range/reference/ranges/any_range.html
==============================================================================
--- (empty file)
+++ trunk/libs/range/doc/html/range/reference/ranges/any_range.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -0,0 +1,177 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>any_range</title>
+<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../../index.html" title="Chapter 1. Range 2.0">
+<link rel="up" href="../ranges.html" title="Provided Ranges">
+<link rel="prev" href="../ranges.html" title="Provided Ranges">
+<link rel="next" href="counting_range.html" title="counting_range">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../ranges.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ranges.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="counting_range.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="range.reference.ranges.any_range"></a><a class="link" href="any_range.html" title="any_range">any_range</a>
+</h4></div></div></div>
+<a name="range.reference.ranges.any_range.description"></a><h6>
+<a name="id754843"></a>
+          <a class="link" href="any_range.html#range.reference.ranges.any_range.description">Description</a>
+        </h6>
+<p>
+          <code class="computeroutput"><span class="identifier">any_range</span></code> is a range that
+          has the type information erased hence a <code class="computeroutput"><span class="identifier">any_range</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">forward_pass_traversal_tag</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
+          <span class="identifier">std</span><span class="special">::</span><span class="identifier">ptrdiff_t</span><span class="special">></span></code>
+          can be used to represent a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span></code>, a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span></code> or many other types.
+        </p>
+<p>
+          The <a href="http://www.artima.com/cppsource/type_erasure.html" target="_top">type
+          erasure article</a> covers the motivation and goals of type erasure
+          in this context. Clearly my implementation is building upon a lot of prior
+          art created by others. Thomas Becker's <code class="computeroutput"><span class="identifier">any_iterator</span></code>
+          was a strong influence. Adobe also have an <code class="computeroutput"><span class="identifier">any_iterator</span></code>
+          implementation, but this has very tight coupling to other parts of the
+          library that precluded it from use in Boost.Range. Early development versions
+          of this Range Adaptor directly used Thomas Becker's any_iterator implementation.
+          Subsequently I discovered that the heap allocations of this and many other
+          implementations cause poor speed performance particularly at the tails
+          of the distribution. To solve this required a new design that incorporated
+          the embedded buffer optimization.
+        </p>
+<p>
+          Despite the underlying <code class="computeroutput"><span class="identifier">any_iterator</span></code>
+          being the fastest available implementation, the performance overhead of
+          <code class="computeroutput"><span class="identifier">any_range</span></code> is still appreciable
+          due to the cost of virtual function calls required to implement <code class="computeroutput"><span class="identifier">increment</span></code>, <code class="computeroutput"><span class="identifier">decrement</span></code>,
+          <code class="computeroutput"><span class="identifier">advance</span></code>, <code class="computeroutput"><span class="identifier">equal</span></code> etc. Frequently a better design
+          choice is to convert to a canonical form.
+        </p>
+<p>
+          Please see the <a class="link" href="../adaptors/reference/type_erased.html" title="type_erased">type_erased</a>
+          for a Range Adaptor that returns <code class="computeroutput"><span class="identifier">any_range</span></code>
+          instances.
+        </p>
+<a name="range.reference.ranges.any_range.synopsis"></a><h6>
+<a name="id755211"></a>
+          <a class="link" href="any_range.html#range.reference.ranges.any_range.synopsis">Synopsis</a>
+        </h6>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span>
+    <span class="keyword">class</span> <span class="identifier">Value</span>
+  <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Traversal</span>
+  <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Reference</span>
+  <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Difference</span>
+  <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Buffer</span> <span class="special">=</span> <span class="identifier">any_iterator_default_buffer</span>
+<span class="special">></span>
+<span class="keyword">class</span> <span class="identifier">any_range</span>
+    <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">iterator_range</span><span class="special"><</span>
+        <span class="identifier">range_detail</span><span class="special">::</span><span class="identifier">any_iterator</span><span class="special"><</span>
+            <span class="identifier">Value</span>
+          <span class="special">,</span> <span class="identifier">Traversal</span>
+          <span class="special">,</span> <span class="identifier">Reference</span>
+          <span class="special">,</span> <span class="identifier">Difference</span>
+          <span class="special">,</span> <span class="identifier">Buffer</span>
+        <span class="special">></span>
+    <span class="special">></span>
+<span class="special">{</span>
+    <span class="keyword">typedef</span> <span class="identifier">range_detail</span><span class="special">::</span><span class="identifier">any_iterator</span><span class="special"><</span>
+        <span class="identifier">Value</span>
+      <span class="special">,</span> <span class="identifier">Traversal</span>
+      <span class="special">,</span> <span class="identifier">Reference</span>
+      <span class="special">,</span> <span class="identifier">Difference</span>
+      <span class="special">,</span> <span class="identifier">Buffer</span>
+    <span class="special">></span> <span class="identifier">any_iterator_type</span><span class="special">;</span>
+
+    <span class="keyword">typedef</span> <span class="identifier">iterator_range</span><span class="special"><</span><span class="identifier">any_iterator_type</span><span class="special">></span> <span class="identifier">base_type</span><span class="special">;</span>
+
+    <span class="keyword">struct</span> <span class="identifier">enabler</span> <span class="special">{};</span>
+    <span class="keyword">struct</span> <span class="identifier">disabler</span> <span class="special">{};</span>
+<span class="keyword">public</span><span class="special">:</span>
+    <span class="keyword">typedef</span> <span class="identifier">any_iterator_type</span> <span class="identifier">iterator</span><span class="special">;</span>
+    <span class="keyword">typedef</span> <span class="identifier">any_iterator_type</span> <span class="identifier">const_iterator</span><span class="special">;</span>
+
+    <span class="identifier">any_range</span><span class="special">()</span>
+    <span class="special">{</span>
+    <span class="special">}</span>
+
+    <span class="identifier">any_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">any_range</span><span class="special">&</span> <span class="identifier">other</span><span class="special">)</span>
+        <span class="special">:</span> <span class="identifier">base_type</span><span class="special">(</span><span class="identifier">other</span><span class="special">)</span>
+    <span class="special">{</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">WrappedRange</span><span class="special">></span>
+    <span class="identifier">any_range</span><span class="special">(</span><span class="identifier">WrappedRange</span><span class="special">&</span> <span class="identifier">wrapped_range</span><span class="special">)</span>
+    <span class="special">:</span> <span class="identifier">base_type</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">wrapped_range</span><span class="special">),</span>
+                <span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span><span class="identifier">wrapped_range</span><span class="special">))</span>
+    <span class="special">{</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">WrappedRange</span><span class="special">></span>
+    <span class="identifier">any_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">WrappedRange</span><span class="special">&</span> <span class="identifier">wrapped_range</span><span class="special">)</span>
+    <span class="special">:</span> <span class="identifier">base_type</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">wrapped_range</span><span class="special">),</span>
+                <span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span><span class="identifier">wrapped_range</span><span class="special">))</span>
+    <span class="special">{</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span><span class="special"><</span>
+        <span class="keyword">class</span> <span class="identifier">OtherValue</span>
+      <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">OtherTraversal</span>
+      <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">OtherReference</span>
+      <span class="special">,</span> <span class="keyword">class</span> <span class="identifier">OtherDifference</span>
+    <span class="special">></span>
+    <span class="identifier">any_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">any_range</span><span class="special"><</span>
+                        <span class="identifier">OtherValue</span>
+                      <span class="special">,</span> <span class="identifier">OtherTraversal</span>
+                      <span class="special">,</span> <span class="identifier">OtherReference</span>
+                      <span class="special">,</span> <span class="identifier">OtherDifference</span>
+                      <span class="special">,</span> <span class="identifier">Buffer</span>
+                    <span class="special">>&</span> <span class="identifier">other</span><span class="special">)</span>
+    <span class="special">:</span> <span class="identifier">base_type</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">other</span><span class="special">),</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span><span class="identifier">other</span><span class="special">))</span>
+    <span class="special">{</span>
+    <span class="special">}</span>
+
+    <span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Iterator</span><span class="special">></span>
+    <span class="identifier">any_range</span><span class="special">(</span><span class="identifier">Iterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">Iterator</span> <span class="identifier">last</span><span class="special">)</span>
+        <span class="special">:</span> <span class="identifier">base_type</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">)</span>
+    <span class="special">{</span>
+    <span class="special">}</span>
+<span class="special">};</span>
+</pre>
+<p>
+        </p>
+<a name="range.reference.ranges.any_range.definition"></a><h6>
+<a name="id756420"></a>
+          <a class="link" href="any_range.html#range.reference.ranges.any_range.definition">Definition</a>
+        </h6>
+<p>
+          Defined in header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">any_range</span><span class="special">.</span><span class="identifier">hpp</span></code>
+        </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
+        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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../ranges.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ranges.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="counting_range.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Modified: trunk/libs/range/doc/html/range/reference/ranges/counting_range.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/ranges/counting_range.html	(original)
+++ trunk/libs/range/doc/html/range/reference/ranges/counting_range.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../../index.html" title="Chapter 1. Range 2.0">
 <link rel="up" href="../ranges.html" title="Provided Ranges">
-<link rel="prev" href="../ranges.html" title="Provided Ranges">
+<link rel="prev" href="any_range.html" title="any_range">
 <link rel="next" href="istream_range.html" title="istream_range">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,14 +20,14 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../ranges.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ranges.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="istream_range.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="any_range.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ranges.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="istream_range.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="range.reference.ranges.counting_range"></a><a class="link" href="counting_range.html" title="counting_range">counting_range</a>
 </h4></div></div></div>
 <a name="range.reference.ranges.counting_range.prototype"></a><h6>
-<a name="id775459"></a>
+<a name="id756497"></a>
           <a class="link" href="counting_range.html#range.reference.ranges.counting_range.prototype">Prototype</a>
         </h6>
 <p>
@@ -48,7 +48,7 @@
 <p>
         </p>
 <a name="range.reference.ranges.counting_range.description"></a><h6>
-<a name="id775839"></a>
+<a name="id756879"></a>
           <a class="link" href="counting_range.html#range.reference.ranges.counting_range.description">Description</a>
         </h6>
 <p>
@@ -58,14 +58,14 @@
           (from Boost.Iterator).
         </p>
 <a name="range.reference.ranges.counting_range.definition"></a><h6>
-<a name="id775895"></a>
+<a name="id756935"></a>
           <a class="link" href="counting_range.html#range.reference.ranges.counting_range.definition">Definition</a>
         </h6>
 <p>
           Defined in header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">counting_range</span><span class="special">.</span><span class="identifier">hpp</span></code>
         </p>
 <a name="range.reference.ranges.counting_range.requirements"></a><h6>
-<a name="id775956"></a>
+<a name="id756996"></a>
           <a class="link" href="counting_range.html#range.reference.ranges.counting_range.requirements">Requirements</a>
         </h6>
 <div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
@@ -84,7 +84,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="../ranges.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ranges.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="istream_range.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="any_range.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ranges.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="istream_range.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>
Modified: trunk/libs/range/doc/html/range/reference/ranges/irange.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/ranges/irange.html	(original)
+++ trunk/libs/range/doc/html/range/reference/ranges/irange.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.ranges.irange"></a><a class="link" href="irange.html" title="irange">irange</a>
 </h4></div></div></div>
 <a name="range.reference.ranges.irange.prototype"></a><h6>
-<a name="id776386"></a>
+<a name="id757425"></a>
           <a class="link" href="irange.html#range.reference.ranges.irange.prototype">Prototype</a>
         </h6>
 <p>
@@ -44,7 +44,7 @@
 <p>
         </p>
 <a name="range.reference.ranges.irange.description"></a><h6>
-<a name="id776678"></a>
+<a name="id757718"></a>
           <a class="link" href="irange.html#range.reference.ranges.irange.description">Description</a>
         </h6>
 <p>
@@ -58,14 +58,14 @@
           parameters denoted a half-open range.
         </p>
 <a name="range.reference.ranges.irange.definition"></a><h6>
-<a name="id776757"></a>
+<a name="id757796"></a>
           <a class="link" href="irange.html#range.reference.ranges.irange.definition">Definition</a>
         </h6>
 <p>
           Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">irange</span><span class="special">.</span><span class="identifier">hpp</span></code>
         </p>
 <a name="range.reference.ranges.irange.requirements"></a><h6>
-<a name="id776817"></a>
+<a name="id757857"></a>
           <a class="link" href="irange.html#range.reference.ranges.irange.requirements">Requirements</a>
         </h6>
 <div class="orderedlist"><ol class="orderedlist" type="1">
@@ -80,7 +80,7 @@
             </li>
 </ol></div>
 <a name="range.reference.ranges.irange.complexity"></a><h6>
-<a name="id776900"></a>
+<a name="id757940"></a>
           <a class="link" href="irange.html#range.reference.ranges.irange.complexity">Complexity</a>
         </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/ranges/istream_range.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/ranges/istream_range.html	(original)
+++ trunk/libs/range/doc/html/range/reference/ranges/istream_range.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -27,7 +27,7 @@
 <a name="range.reference.ranges.istream_range"></a><a class="link" href="istream_range.html" title="istream_range">istream_range</a>
 </h4></div></div></div>
 <a name="range.reference.ranges.istream_range.prototype"></a><h6>
-<a name="id776028"></a>
+<a name="id757067"></a>
           <a class="link" href="istream_range.html#range.reference.ranges.istream_range.prototype">Prototype</a>
         </h6>
 <p>
@@ -40,7 +40,7 @@
 <p>
         </p>
 <a name="range.reference.ranges.istream_range.description"></a><h6>
-<a name="id776244"></a>
+<a name="id757284"></a>
           <a class="link" href="istream_range.html#range.reference.ranges.istream_range.description">Description</a>
         </h6>
 <p>
@@ -49,7 +49,7 @@
           wrapping a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">istream_iterator</span></code>.
         </p>
 <a name="range.reference.ranges.istream_range.definition"></a><h6>
-<a name="id776308"></a>
+<a name="id757348"></a>
           <a class="link" href="istream_range.html#range.reference.ranges.istream_range.definition">Definition</a>
         </h6>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/utilities/iterator_range.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/utilities/iterator_range.html	(original)
+++ trunk/libs/range/doc/html/range/reference/utilities/iterator_range.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -48,7 +48,7 @@
           type.
         </p>
 <a name="range.reference.utilities.iterator_range.synopsis"></a><h5>
-<a name="id777262"></a>
+<a name="id758301"></a>
           <a class="link" href="iterator_range.html#range.reference.utilities.iterator_range.synopsis">Synopsis</a>
         </h5>
 <p>
@@ -188,7 +188,7 @@
           iterators from the same container.
         </p>
 <a name="range.reference.utilities.iterator_range.details_member_functions"></a><h5>
-<a name="id780468"></a>
+<a name="id761507"></a>
           <a class="link" href="iterator_range.html#range.reference.utilities.iterator_range.details_member_functions">Details
           member functions</a>
         </h5>
@@ -207,7 +207,7 @@
             <span class="special">==</span> <span class="identifier">r</span><span class="special">.</span><span class="identifier">end</span><span class="special">();</span></code>
           </p></blockquote></div>
 <a name="range.reference.utilities.iterator_range.details_functions"></a><h5>
-<a name="id780703"></a>
+<a name="id761741"></a>
           <a class="link" href="iterator_range.html#range.reference.utilities.iterator_range.details_functions">Details
           functions</a>
         </h5>
Modified: trunk/libs/range/doc/html/range/reference/utilities/join.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/utilities/join.html	(original)
+++ trunk/libs/range/doc/html/range/reference/utilities/join.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -39,7 +39,7 @@
           check if the end of a range has been reached internally during traversal.
         </p>
 <a name="range.reference.utilities.join.synposis"></a><h5>
-<a name="id783099"></a>
+<a name="id764138"></a>
           <a class="link" href="join.html#range.reference.utilities.join.synposis">Synposis</a>
         </h5>
 <p>
@@ -108,7 +108,7 @@
             </li>
 </ul></div>
 <a name="range.reference.utilities.join.example"></a><h5>
-<a name="id783934"></a>
+<a name="id764973"></a>
           <a class="link" href="join.html#range.reference.utilities.join.example">Example</a>
         </h5>
 <p>
Modified: trunk/libs/range/doc/html/range/reference/utilities/sub_range.html
==============================================================================
--- trunk/libs/range/doc/html/range/reference/utilities/sub_range.html	(original)
+++ trunk/libs/range/doc/html/range/reference/utilities/sub_range.html	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -35,7 +35,7 @@
           is.
         </p>
 <a name="range.reference.utilities.sub_range.synopsis"></a><h5>
-<a name="id781835"></a>
+<a name="id762873"></a>
           <a class="link" href="sub_range.html#range.reference.utilities.sub_range.synopsis">Synopsis</a>
         </h5>
 <p>
Modified: trunk/libs/range/doc/reference/adaptors.qbk
==============================================================================
--- trunk/libs/range/doc/reference/adaptors.qbk	(original)
+++ trunk/libs/range/doc/reference/adaptors.qbk	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -177,6 +177,7 @@
 [include adaptors/reversed.qbk]
 [include adaptors/sliced.qbk]
 [include adaptors/strided.qbk]
+[include adaptors/type_erased.qbk]
 [include adaptors/tokenized.qbk]
 [include adaptors/transformed.qbk]
 [include adaptors/uniqued.qbk]
Added: trunk/libs/range/doc/reference/adaptors/type_erased.qbk
==============================================================================
--- (empty file)
+++ trunk/libs/range/doc/reference/adaptors/type_erased.qbk	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -0,0 +1,151 @@
+[/
+    Copyright 2010 Neil Groves
+    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)
+/]
+[section:type_erased type_erased]
+
+[table
+    [[Syntax] [Code]]
+    [[Pipe] [`rng | boost::adaptors::type_erased<Value, Traversal, Reference, Difference, Buffer>()`]]
+    [[Function] [`boost::adaptors::type_erase(rng, boost::adaptors::type_erased<Value, Traversal, Reference, Difference, Buffer>)`]]
+]
+
+Please note that it is frequently unnecessary to use the `type_erased` adaptor. It is often better to use the implicit conversion to `any_range`.
+
+Let `Rng` be the type of `rng`.
+
+* [*Template parameters:]
+    * `Value` is the `value_type` for the `any_range`. If this is set to boost::use_default, `Value` will be calculated from the
+        range type when the adaptor is applied.
+    * `Traversal` is the tag used to identify the traversal of the resultant range. Frequently it is desireable to set a traversal category lower than the source container or range to maximize the number of ranges that can convert to the `any_range`. If this is left as boost::use_default then `Traversal` will be `typename boost::iterator_traversal<boost::range_iterator<Rng>::type>::type`
+    * `Reference` is the `reference` for the `any_range`. `boost::use_default` will equate to `typename range_reference<Rng>::type`.
+    * `Difference` is the `difference_type` for the any_range. `boost::use_default` will equate to `typename boost::range_difference<Rng>::type`
+    * `Buffer` is the storage used to allocate the underlying iterator wrappers. This can typically be ignored, but is available as a template parameter for customization. Buffer must be a model of the `AnyIteratorBufferConcept`.
+* [*Precondition:]  `Traversal` is one of `{ boost::use_default, boost::single_pass_traversal_tag, boost::forward_traversal_tag, boost::bidirectional_traversal_tag, boost::random_access_traversal_tag }`
+* [*Returns:] The returned value is the same as `typename any_range_type_generator< Rng, Value, Traversal, Reference, Difference, Buffer >` that represents `rng` in a type-erased manner.
+* [*Range Category:] __single_pass_range__
+* [*Returned Range Category:] if `Traversal` was specified as `boost::use_default` then `typename boost::iterator_traversal<boost::range_iterator<Rng>::type>::type`, otherwise `Traversal`.
+
+[heading AnyIteratorBufferConcept]
+``
+class AnyIteratorBufferConcept
+{
+public:
+    AnyIteratorBufferConcept();
+    ~AnyIteratorBufferConcept();
+
+    // bytes is the requested size to allocate. This function
+    // must return a pointer to an adequate area of memory.
+    // throws: bad_alloc
+    //
+    // The buffer will only ever have zero or one
+    // outstanding memory allocations.
+    void* allocate(std::size_t bytes);
+
+    // deallocate this buffer
+    void deallocate();
+};
+``
+
+[section:type_erased_example type-erased example]
+``
+#include <boost/range/adaptor/type_erased.hpp>
+#include <boost/range/algorithm/copy.hpp>
+#include <boost/assign.hpp>
+#include <boost/foreach.hpp>
+#include <algorithm>
+#include <iostream>
+#include <list>
+#include <vector>
+
+// The client interface from an OO perspective merely requires a sequence
+// of integers that can be forward traversed
+typedef boost::any_range<
+    int
+  , boost::forward_traversal_tag
+  , int
+  , std::ptrdiff_t
+> integer_range;
+
+namespace server
+{
+    void display_integers(const integer_range& rng)
+    {
+        boost::copy(rng,
+                    std::ostream_iterator<int>(std::cout, ","));
+
+        std::cout << std::endl;
+    }
+}
+
+namespace client
+{
+    void run()
+    {
+        using namespace boost::assign;
+        using namespace boost::adaptors;
+
+        // Under most conditions one would simply use an appropriate
+        // any_range as a function parameter. The type_erased adaptor
+        // is often superfluous. However because the type_erased
+        // adaptor is applied to a range, we can use default template
+        // arguments that are generated in conjunction with the
+        // range type to which we are applying the adaptor.
+
+        std::vector<int> input;
+        input += 1,2,3,4,5;
+
+        // Note that this call is to a non-template function
+        server::display_integers(input);
+
+        std::list<int> input2;
+        input2 += 6,7,8,9,10;
+
+        // Note that this call is to the same non-tempate function
+        server::display_integers(input2);
+
+        input2.clear();
+        input2 += 11,12,13,14,15;
+
+        // Calling using the adaptor looks like this:
+        // Notice that here I have a type_erased that would be a
+        // bidirectional_traversal_tag, but this is convertible
+        // to the forward_traversal_tag equivalent hence this
+        // works.
+        server::display_integers(input2 | type_erased<>());
+
+        // However we may simply wish to define an adaptor that
+        // takes a range and makes it into an appropriate
+        // forward_traversal any_range...
+        typedef boost::adaptors::type_erased<
+            boost::use_default
+          , boost::forward_traversal_tag
+        > type_erased_forward;
+
+        // This adaptor can turn other containers with different
+        // value_types and reference_types into the appropriate
+        // any_range.
+
+        server::display_integers(input2 | type_erased_forward());
+    }
+}
+
+int main(int argc, const char* argv[])
+{
+    client::run();
+    return 0;
+}
+``
+[endsect]
+
+This would produce the output:
+``
+1,2,3,4,5
+6,7,8,9,10
+11,12,13,14,15
+11,12,13,14,15
+``
+[endsect]
+
+
Modified: trunk/libs/range/doc/reference/ranges.qbk
==============================================================================
--- trunk/libs/range/doc/reference/ranges.qbk	(original)
+++ trunk/libs/range/doc/reference/ranges.qbk	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -5,6 +5,7 @@
 /]
 [section:ranges Provided Ranges]
 
+[include ranges/any_range.qbk]
 [include ranges/counting_range.qbk]
 [include ranges/istream_range.qbk]
 [include ranges/irange.qbk]
Added: trunk/libs/range/doc/reference/ranges/any_range.qbk
==============================================================================
--- (empty file)
+++ trunk/libs/range/doc/reference/ranges/any_range.qbk	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -0,0 +1,115 @@
+[/
+    Copyright 2010 Neil Groves
+    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)
+/]
+[section:any_range any_range]
+
+[heading Description]
+
+`any_range` is a range that has the type information erased hence a `any_range<int, boost::forward_pass_traversal_tag, int, std::ptrdiff_t>`
+can be used to represent a `std::vector<int>`, a `std::list<int>` or many other types.
+
+The __type_erasure_article__ covers the motivation and goals of type erasure in this context. Clearly
+my implementation is building upon a lot of prior art created by others. Thomas Becker's `any_iterator` was a strong
+influence. Adobe also have an `any_iterator` implementation, but this has very tight coupling to other parts of the
+library that precluded it from use in Boost.Range.
+Early development versions of this Range Adaptor directly used Thomas Becker's any_iterator implementation.
+Subsequently I discovered that the heap allocations of this and many other implementations cause poor
+speed performance particularly at the tails of the distribution. To solve this required a new design that
+incorporated the embedded buffer optimization.
+
+Despite the underlying `any_iterator` being the fastest available implementation, the performance overhead of `any_range` is still appreciable due to the cost of virtual function calls required to implement `increment`, `decrement`, `advance`, `equal` etc. Frequently a better design choice is to convert to a canonical form.
+
+Please see the __range_adaptors_type_erased__ for a Range Adaptor that returns `any_range` instances.
+
+[heading Synopsis]
+
+``
+template<
+    class Value
+  , class Traversal
+  , class Reference
+  , class Difference
+  , class Buffer = any_iterator_default_buffer
+>
+class any_range
+    : public iterator_range<
+        range_detail::any_iterator<
+            Value
+          , Traversal
+          , Reference
+          , Difference
+          , Buffer
+        >
+    >
+{
+    typedef range_detail::any_iterator<
+        Value
+      , Traversal
+      , Reference
+      , Difference
+      , Buffer
+    > any_iterator_type;
+
+    typedef iterator_range<any_iterator_type> base_type;
+
+    struct enabler {};
+    struct disabler {};
+public:
+    typedef any_iterator_type iterator;
+    typedef any_iterator_type const_iterator;
+
+    any_range()
+    {
+    }
+
+    any_range(const any_range& other)
+        : base_type(other)
+    {
+    }
+
+    template<class WrappedRange>
+    any_range(WrappedRange& wrapped_range)
+    : base_type(boost::begin(wrapped_range),
+                boost::end(wrapped_range))
+    {
+    }
+
+    template<class WrappedRange>
+    any_range(const WrappedRange& wrapped_range)
+    : base_type(boost::begin(wrapped_range),
+                boost::end(wrapped_range))
+    {
+    }
+
+    template<
+        class OtherValue
+      , class OtherTraversal
+      , class OtherReference
+      , class OtherDifference
+    >
+    any_range(const any_range<
+                        OtherValue
+                      , OtherTraversal
+                      , OtherReference
+                      , OtherDifference
+                      , Buffer
+                    >& other)
+    : base_type(boost::begin(other), boost::end(other))
+    {
+    }
+
+    template<class Iterator>
+    any_range(Iterator first, Iterator last)
+        : base_type(first, last)
+    {
+    }
+};
+``
+
+[heading Definition]
+
+Defined in header file `boost/range/any_range.hpp`
+
+[endsect]
Modified: trunk/libs/range/test/Jamfile.v2
==============================================================================
--- trunk/libs/range/test/Jamfile.v2	(original)
+++ trunk/libs/range/test/Jamfile.v2	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -59,6 +59,8 @@
         [ range-test adaptor_test/sliced_example ]
         [ range-test adaptor_test/strided_example ]
         [ range-test adaptor_test/transformed_example ]
+	[ range-test adaptor_test/type_erased ]
+	[ range-test adaptor_test/type_erased_example ]
         [ range-test adaptor_test/uniqued_example ]
         [ range-test algorithm_test/adjacent_find ]
         [ range-test algorithm_test/binary_search ]
@@ -131,11 +133,13 @@
         [ range-test algorithm_example ]
         [ range-test array ]
 #	[ range-test atl : <include>$(VC71_ROOT)/atlmfc/include ]
+    [ range-test begin ]
         [ range-test combine ]
         [ range-test compat2 ]
         [ range-test compat3 ]
         [ range-test const_ranges ]
         [ range-test counting_range ]
+	[ range-test end ]
         [ range-test extension_mechanism ]
         [ range-test extension_size ]
         [ range-test has_range_iterator ]
Added: trunk/libs/range/test/adaptor_test/type_erased.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/range/test/adaptor_test/type_erased.cpp	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -0,0 +1,487 @@
+// Boost.Range library
+//
+//  Copyright Neil Groves 2010. Use, modification and
+//  distribution is subject to 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)
+//
+#include <boost/range/adaptor/type_erased.hpp>
+
+#include <boost/test/test_tools.hpp>
+#include <boost/test/unit_test.hpp>
+
+#include <boost/range/algorithm_ext.hpp>
+#include <boost/range/algorithm/fill.hpp>
+#include <boost/assign.hpp>
+#include <boost/array.hpp>
+
+#include <algorithm>
+#include <list>
+#include <set>
+#include <vector>
+
+namespace boost_range_adaptor_type_erased_test
+{
+    namespace
+    {
+        class MockType
+        {
+        public:
+            explicit MockType(int x)
+                : m_x(x) {}
+
+            int get() const { return m_x; }
+
+            bool operator==(const MockType& other) const
+            {
+                return m_x == other.m_x;
+            }
+
+            bool operator!=(const MockType& other) const
+            {
+                return m_x != other.m_x;
+            }
+
+        private:
+            int m_x;
+        };
+
+        std::ostream& operator<<(std::ostream& out, const MockType& obj)
+        {
+            out << obj.get();
+            return out;
+        }
+
+        template<class Container>
+        void test_type_erased_impl(Container& c)
+        {
+            using namespace boost::adaptors;
+            typedef typename boost::range_value<Container>::type value_type;
+            typedef typename boost::adaptors::type_erased<> type_erased_t;
+
+
+            std::vector<value_type> output;
+
+            boost::push_back(output, boost::adaptors::type_erase(c, type_erased_t()));
+
+            BOOST_CHECK_EQUAL_COLLECTIONS( output.begin(), output.end(),
+                                           c.begin(), c.end() );
+
+            output.clear();
+            boost::push_back(output, c | type_erased_t());
+
+            BOOST_CHECK_EQUAL_COLLECTIONS( output.begin(), output.end(),
+                                           c.begin(), c.end() );
+        }
+
+        template<class Container>
+        void test_const_and_mutable(Container& c)
+        {
+            test_type_erased_impl(c);
+
+            const Container& const_c = c;
+            test_type_erased_impl(const_c);
+        }
+
+        template<class Container>
+        void test_driver()
+        {
+            using namespace boost::assign;
+
+            typedef typename boost::range_value<Container>::type value_type;
+
+            Container c;
+            test_const_and_mutable(c);
+
+            c += value_type(1);
+            test_const_and_mutable(c);
+
+            c += value_type(2);
+            test_const_and_mutable(c);
+        }
+
+        void test_type_erased()
+        {
+            test_driver< std::list<int> >();
+            test_driver< std::vector<int> >();
+
+            test_driver< std::list<MockType> >();
+            test_driver< std::vector<MockType> >();
+        }
+
+        template<
+            class Traversal
+          , class Container
+        >
+        void test_writeable(Container&, boost::single_pass_traversal_tag)
+        {}
+
+        template<
+            class Traversal
+          , class Container
+        >
+        void test_writeable(Container& source, boost::forward_traversal_tag)
+        {
+            using namespace boost::adaptors;
+
+            typedef typename boost::range_value<Container>::type value_type;
+            typedef typename boost::range_difference<Container>::type difference_type;
+            typedef typename boost::range_reference<Container>::type mutable_reference_type;
+            typedef boost::any_range<
+                        value_type
+                      , Traversal
+                      , mutable_reference_type
+                      , difference_type
+                    > mutable_any_range;
+
+            mutable_any_range r = source | boost::adaptors::type_erased<>();
+            std::vector<value_type> output_test;
+            boost::fill(r, value_type(1));
+            BOOST_CHECK_EQUAL( boost::distance(r), boost::distance(source) );
+            std::vector<value_type> reference_output(source.size(), value_type(1));
+            BOOST_CHECK_EQUAL_COLLECTIONS( reference_output.begin(), reference_output.end(),
+                                           r.begin(), r.end() );
+
+        }
+
+        template<
+            class Container
+          , class Traversal
+          , class Buffer
+        >
+        void test_type_erased_impl()
+        {
+            using namespace boost::adaptors;
+
+            typedef Buffer buffer_type;
+
+            typedef typename boost::range_value<Container>::type value_type;
+
+            typedef typename boost::any_range_type_generator<
+                Container
+              , boost::use_default
+              , Traversal
+              , boost::use_default
+              , boost::use_default
+              , Buffer
+            >::type mutable_any_range;
+
+            typedef typename boost::any_range_type_generator<
+                const Container
+              , boost::use_default
+              , Traversal
+              , boost::use_default
+              , boost::use_default
+              , Buffer
+            >::type const_any_range;
+
+            typedef boost::adaptors::type_erased<
+                        boost::use_default
+                      , Traversal
+                      , boost::use_default
+                      , boost::use_default
+                      , Buffer
+                    > type_erased_t;
+
+            type_erased_t type_erased_ex;
+
+            Container source;
+            for (int i = 0; i < 100; ++i)
+                source.push_back(value_type(i));
+
+            mutable_any_range r(source);
+            BOOST_CHECK_EQUAL_COLLECTIONS( source.begin(), source.end(),
+                                           r.begin(), r.end() );
+
+            r = mutable_any_range();
+            BOOST_CHECK_EQUAL( r.empty(), true );
+
+            r = source | type_erased_ex;
+            BOOST_CHECK_EQUAL_COLLECTIONS( source.begin(), source.end(),
+                                           r.begin(), r.end() );
+            r = mutable_any_range();
+
+            r = boost::adaptors::type_erase(source, type_erased_ex);
+            BOOST_CHECK_EQUAL_COLLECTIONS( source.begin(), source.end(),
+                                           r.begin(), r.end() );
+            r = mutable_any_range();
+
+            test_writeable<Traversal>(source, Traversal());
+
+            // convert and construct a const any_range from a mutable source
+            // range
+            const_any_range cr(source);
+            BOOST_CHECK_EQUAL_COLLECTIONS( source.begin(), source.end(),
+                                           cr.begin(), cr.end() );
+            // assign an empty range and ensure that this correctly results
+            // in an empty range. This is important for the validity of
+            // the rest of the tests.
+            cr = const_any_range();
+            BOOST_CHECK_EQUAL( cr.empty(), true );
+
+            // Test the pipe type_erased adaptor from a constant source
+            // range to a constant any_range
+            const Container& const_source = source;
+            cr = const_any_range();
+            cr = const_source | type_erased_ex;
+            BOOST_CHECK_EQUAL_COLLECTIONS( const_source.begin(), const_source.end(),
+                                           cr.begin(), cr.end() );
+
+            // Test the pipe type erased adaptor from a mutable source
+            // range to a constant any_range
+            cr = const_any_range();
+            cr = source | type_erased_ex;
+            BOOST_CHECK_EQUAL_COLLECTIONS( source.begin(), source.end(),
+                                           cr.begin(), cr.end() );
+
+            // Use the function form of the type_erase adaptor from a constant
+            // source range
+            cr = const_any_range();
+            cr = boost::adaptors::type_erase(const_source, type_erased_ex);
+            BOOST_CHECK_EQUAL_COLLECTIONS( const_source.begin(), const_source.end(),
+                                           cr.begin(), cr.end() );
+
+            // Assignment from mutable to const...
+            cr = const_any_range();
+            cr = r;
+            BOOST_CHECK_EQUAL_COLLECTIONS( cr.begin(), cr.end(),
+                                           r.begin(), r.end() );
+
+            // Converting copy from mutable to const...
+            cr = const_any_range();
+            cr = const_any_range(r);
+            BOOST_CHECK_EQUAL_COLLECTIONS( cr.begin(), cr.end(),
+                                           r.begin(), r.end() );
+        }
+
+        template<
+            class Container
+          , class Traversal
+          , class Buffer
+        >
+        class test_type_erased_impl_fn
+        {
+        public:
+            typedef void result_type;
+            void operator()()
+            {
+                test_type_erased_impl< Container, Traversal, Buffer >();
+            }
+        };
+
+        template<
+            class Container
+          , class Traversal
+        >
+        void test_type_erased_exercise_buffer_types()
+        {
+            using boost::any_iterator_default_buffer;
+            using boost::any_iterator_buffer;
+            using boost::any_iterator_heap_only_buffer;
+            using boost::any_iterator_stack_only_buffer;
+
+            test_type_erased_impl_fn< Container, Traversal, any_iterator_default_buffer >()();
+            test_type_erased_impl_fn< Container, Traversal, any_iterator_heap_only_buffer >()();
+            test_type_erased_impl_fn< Container, Traversal, any_iterator_buffer<1> >()();
+            test_type_erased_impl_fn< Container, Traversal, any_iterator_buffer<2> >()();
+            test_type_erased_impl_fn< Container, Traversal, any_iterator_buffer<4> >()();
+            test_type_erased_impl_fn< Container, Traversal, any_iterator_buffer<8> >()();
+            test_type_erased_impl_fn< Container, Traversal, any_iterator_buffer<16> >()();
+            test_type_erased_impl_fn< Container, Traversal, any_iterator_buffer<32> >()();
+            test_type_erased_impl_fn< Container, Traversal, any_iterator_buffer<64> >()();
+            test_type_erased_impl_fn< Container, Traversal, any_iterator_buffer<128> >()();
+            test_type_erased_impl_fn< Container, Traversal, any_iterator_buffer<4096> >()();
+            test_type_erased_impl_fn< Container, Traversal, any_iterator_buffer<16384> >()();
+            test_type_erased_impl_fn< Container, Traversal, any_iterator_stack_only_buffer<128> >()();
+            test_type_erased_impl_fn< Container, Traversal, any_iterator_stack_only_buffer<4096> >()();
+            test_type_erased_impl_fn< Container, Traversal, any_iterator_stack_only_buffer<16384> >()();
+        }
+
+        void test_type_erased_single_pass()
+        {
+            test_type_erased_exercise_buffer_types< std::list<int>, boost::single_pass_traversal_tag >();
+            test_type_erased_exercise_buffer_types< std::deque<int>, boost::single_pass_traversal_tag >();
+            test_type_erased_exercise_buffer_types< std::vector<int>, boost::single_pass_traversal_tag >();
+
+            test_type_erased_exercise_buffer_types< std::list<MockType>, boost::single_pass_traversal_tag >();
+            test_type_erased_exercise_buffer_types< std::deque<MockType>, boost::single_pass_traversal_tag >();
+            test_type_erased_exercise_buffer_types< std::vector<MockType>, boost::single_pass_traversal_tag >();
+        }
+
+        void test_type_erased_forward()
+        {
+            test_type_erased_exercise_buffer_types< std::list<int>, boost::forward_traversal_tag >();
+            test_type_erased_exercise_buffer_types< std::deque<int>, boost::forward_traversal_tag >();
+            test_type_erased_exercise_buffer_types< std::vector<int>, boost::forward_traversal_tag >();
+
+            test_type_erased_exercise_buffer_types< std::list<MockType>, boost::forward_traversal_tag >();
+            test_type_erased_exercise_buffer_types< std::deque<MockType>, boost::forward_traversal_tag >();
+            test_type_erased_exercise_buffer_types< std::vector<MockType>, boost::forward_traversal_tag >();
+        }
+
+        void test_type_erased_bidirectional()
+        {
+            test_type_erased_exercise_buffer_types< std::list<int>, boost::bidirectional_traversal_tag >();
+            test_type_erased_exercise_buffer_types< std::deque<int>, boost::bidirectional_traversal_tag >();
+            test_type_erased_exercise_buffer_types< std::vector<int>, boost::bidirectional_traversal_tag >();
+
+            test_type_erased_exercise_buffer_types< std::list<MockType>, boost::bidirectional_traversal_tag >();
+            test_type_erased_exercise_buffer_types< std::deque<MockType>, boost::bidirectional_traversal_tag >();
+            test_type_erased_exercise_buffer_types< std::vector<MockType>, boost::bidirectional_traversal_tag >();
+        }
+
+        void test_type_erased_random_access()
+        {
+            test_type_erased_exercise_buffer_types< std::deque<int>, boost::random_access_traversal_tag >();
+            test_type_erased_exercise_buffer_types< std::vector<int>, boost::random_access_traversal_tag >();
+
+            test_type_erased_exercise_buffer_types< std::deque<MockType>, boost::random_access_traversal_tag >();
+            test_type_erased_exercise_buffer_types< std::vector<MockType>, boost::random_access_traversal_tag >();
+        }
+
+        void test_type_erased_multiple_different_template_parameter_conversion()
+        {
+            typedef boost::any_range<
+                        int
+                      , boost::random_access_traversal_tag
+                      , int&
+                      , std::ptrdiff_t
+            > source_range_type;
+
+            typedef boost::any_range<
+                        int
+                      , boost::single_pass_traversal_tag
+                      , const int&
+                      , std::ptrdiff_t
+            > target_range_type;
+
+            source_range_type source;
+
+            // Converting via construction
+            target_range_type t1(source);
+
+            // Converting via assignment
+            target_range_type t2;
+            t2 = source;
+
+            // Converting via construction to a type with a reference type
+            // that is a value
+            typedef boost::any_range<
+                        int
+                      , boost::single_pass_traversal_tag
+                      , int
+                      , std::ptrdiff_t
+                    > target_range2_type;
+
+            target_range2_type t3(source);
+            target_range2_type t4;
+            t4 = source;
+        }
+
+        template<
+            class Traversal
+          , class ValueType
+          , class SourceValueType
+          , class SourceReference
+          , class TargetValueType
+          , class TargetReference
+        >
+        void test_type_erased_mix_values_impl()
+        {
+            typedef std::vector< ValueType > Container;
+
+            typedef typename boost::any_range_type_generator<
+                Container
+              , SourceValueType
+              , Traversal
+              , SourceReference
+            >::type source_type;
+
+            typedef typename boost::any_range_type_generator<
+                Container
+              , TargetValueType
+              , Traversal
+              , TargetReference
+            >::type target_type;
+
+            Container test_data;
+            for (int i = 0; i < 10; ++i)
+                test_data.push_back(i);
+
+            const source_type source_data(test_data);
+            target_type t1(source_data);
+            BOOST_CHECK_EQUAL_COLLECTIONS( source_data.begin(), source_data.end(),
+                                           t1.begin(), t1.end() );
+
+            target_type t2;
+            t2 = source_data;
+            BOOST_CHECK_EQUAL_COLLECTIONS( source_data.begin(), source_data.end(),
+                                           t2.begin(), t2.end() );
+        }
+
+        class MockInt
+        {
+        public:
+            MockInt() : m_value() {}
+            MockInt(int x) : m_value(x) {}
+            operator int() const { return m_value; }
+        private:
+            int m_value;
+        };
+
+
+        template<class Traversal>
+        void test_type_erased_mix_values_driver()
+        {
+            test_type_erased_mix_values_impl< Traversal, int, char, const int&, short, const int& >();
+            test_type_erased_mix_values_impl< Traversal, int, int*, const int&, char, const int& >();
+            test_type_erased_mix_values_impl< Traversal, MockInt, char, const MockInt&, short, const MockInt& >();
+
+            // In fact value type should have no effect in the eligibility
+            // for conversion, hence we should be able to convert it
+            // completely backwards!
+            test_type_erased_mix_values_impl< Traversal, int, short, const int&, char, const int& >();
+            test_type_erased_mix_values_impl< Traversal, int, char, const int&, int*, const int& >();
+        }
+
+        void test_type_erased_mix_values()
+        {
+            test_type_erased_mix_values_driver< boost::single_pass_traversal_tag >();
+            test_type_erased_mix_values_driver< boost::forward_traversal_tag >();
+            test_type_erased_mix_values_driver< boost::bidirectional_traversal_tag >();
+            test_type_erased_mix_values_driver< boost::random_access_traversal_tag >();
+        }
+
+        void test_type_erased_operator_brackets()
+        {
+            typedef boost::adaptors::type_erased<> type_erased_t;
+
+            std::vector<int> c;
+            for (int i = 0; i < 10; ++i)
+                c.push_back(i);
+
+            for (int i = 0; i < 10; ++i)
+            {
+                BOOST_CHECK_EQUAL( (c | type_erased_t())[i], i );
+            }
+        }
+    }
+}
+
+boost::unit_test::test_suite*
+init_unit_test_suite(int argc, char* argv[])
+{
+    boost::unit_test::test_suite* test
+        = BOOST_TEST_SUITE( "RangeTestSuite.adaptor.type_erased" );
+
+    test->add( BOOST_TEST_CASE( &boost_range_adaptor_type_erased_test::test_type_erased ) );
+    test->add( BOOST_TEST_CASE( &boost_range_adaptor_type_erased_test::test_type_erased_single_pass ) );
+    test->add( BOOST_TEST_CASE( &boost_range_adaptor_type_erased_test::test_type_erased_forward ) );
+    test->add( BOOST_TEST_CASE( &boost_range_adaptor_type_erased_test::test_type_erased_bidirectional ) );
+    test->add( BOOST_TEST_CASE( &boost_range_adaptor_type_erased_test::test_type_erased_random_access ) );
+    test->add( BOOST_TEST_CASE( &boost_range_adaptor_type_erased_test::test_type_erased_multiple_different_template_parameter_conversion ) );
+    test->add( BOOST_TEST_CASE( &boost_range_adaptor_type_erased_test::test_type_erased_mix_values ) );
+    test->add( BOOST_TEST_CASE( &boost_range_adaptor_type_erased_test::test_type_erased_operator_brackets ) );
+
+    return test;
+}
Added: trunk/libs/range/test/adaptor_test/type_erased_example.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/range/test/adaptor_test/type_erased_example.cpp	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -0,0 +1,115 @@
+// Boost.Range library
+//
+//  Copyright Neil Groves 2010. Use, modification and
+//  distribution is subject to 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)
+//
+//
+// For more information, see http://www.boost.org/libs/range/
+//
+#include <boost/range/adaptor/type_erased.hpp>
+#include <boost/range/algorithm/copy.hpp>
+#include <boost/assign.hpp>
+#include <boost/foreach.hpp>
+#include <algorithm>
+#include <iostream>
+#include <list>
+#include <vector>
+
+#include <boost/test/test_tools.hpp>
+#include <boost/test/unit_test.hpp>
+
+namespace
+{
+    namespace boost_range_test
+    {
+        namespace type_erased_example
+        {
+
+// The client interface from an OO perspective merely requires a sequence
+// of integers that can be forward traversed
+typedef boost::any_range<
+    int
+  , boost::forward_traversal_tag
+  , int
+  , std::ptrdiff_t
+> integer_range;
+
+namespace server
+{
+    void display_integers(const integer_range& rng)
+    {
+        boost::copy(rng,
+                    std::ostream_iterator<int>(std::cout, ","));
+
+        std::cout << std::endl;
+    }
+}
+
+namespace client
+{
+    void run()
+    {
+        using namespace boost::assign;
+        using namespace boost::adaptors;
+
+        // Under most conditions one would simply use an appropriate
+        // any_range as a function parameter. The type_erased adaptor
+        // is often superfluous. However because the type_erased
+        // adaptor is applied to a range, we can use default template
+        // arguments that are generated in conjunction with the
+        // range type to which we are applying the adaptor.
+
+        std::vector<int> input;
+        input += 1,2,3,4,5;
+
+        // Note that this call is to a non-template function
+        server::display_integers(input);
+
+        std::list<int> input2;
+        input2 += 6,7,8,9,10;
+
+        // Note that this call is to the same non-tempate function
+        server::display_integers(input2);
+
+        input2.clear();
+        input2 += 11,12,13,14,15;
+
+        // Calling using the adaptor looks like this:
+        // Notice that here I have a type_erased that would be a
+        // bidirectional_traversal_tag, but this is convertible
+        // to the forward_traversal_tag equivalent hence this
+        // works.
+        server::display_integers(input2 | type_erased<>());
+
+        // However we may simply wish to define an adaptor that
+        // takes a range and makes it into an appropriate
+        // forward_traversal any_range...
+        typedef boost::adaptors::type_erased<
+            boost::use_default
+          , boost::forward_traversal_tag
+        > type_erased_forward;
+
+        // This adaptor can turn other containers with different
+        // value_types and reference_types into the appropriate
+        // any_range.
+
+        server::display_integers(input2 | type_erased_forward());
+    }
+}
+
+        } // namespace type_erased_example
+    } // namespace boost_range_test
+} // anonymous namespace
+
+boost::unit_test::test_suite*
+init_unit_test_suite(int argc, char* argv[])
+{
+    boost::unit_test::test_suite* test
+        = BOOST_TEST_SUITE( "RangeTestSuite.adaptor.type_erased_example" );
+
+    test->add( BOOST_TEST_CASE( &boost_range_test::type_erased_example::client::run) );
+
+    return test;
+}
Added: trunk/libs/range/test/begin.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/range/test/begin.cpp	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -0,0 +1,119 @@
+// Boost.Range library
+//
+//  Copyright Neil Groves 2010. Use, modification and
+//  distribution is subject to 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)
+//
+// For more information, see http://www.boost.org/libs/range/
+//
+
+#include <boost/detail/workaround.hpp>
+
+#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
+#  pragma warn -8091 // supress warning in Boost.Test
+#  pragma warn -8057 // unused argument argc/argv in Boost.Test
+#endif
+
+#include <boost/range/begin.hpp>
+#include <boost/test/unit_test.hpp>
+#include <boost/test/test_tools.hpp>
+#include <boost/test/included/unit_test_framework.hpp>
+
+namespace mock_std
+{
+    template<class SinglePassRange>
+    inline BOOST_DEDUCED_TYPENAME boost::range_iterator<SinglePassRange>::type
+    begin(SinglePassRange& rng)
+    {
+        return rng.begin();
+    }
+
+    template<class SinglePassRange>
+    inline BOOST_DEDUCED_TYPENAME boost::range_iterator<const SinglePassRange>::type
+    begin(const SinglePassRange& rng)
+    {
+        return rng.begin();
+    }
+
+    template<class SinglePassRange>
+    void mock_algorithm_using_begin(const SinglePassRange& rng)
+    {
+        BOOST_CHECK( begin(rng) == rng.begin() );
+    }
+
+    template<class SinglePassRange>
+    void mock_algorithm_using_begin(SinglePassRange& rng)
+    {
+        BOOST_CHECK( begin(rng) == rng.begin() );
+    }
+}
+
+namespace boost
+{
+#ifdef BOOST_RANGE_SIMULATE_BEGIN_WITHOUT_ADL_NAMESPACE_BARRIER
+    template<class SinglePassRange>
+    inline BOOST_DEDUCED_TYPENAME range_iterator<SinglePassRange>::type
+    begin(SinglePassRange& rng)
+    {
+        return rng.begin();
+    }
+
+    template<class SinglePassRange>
+    inline BOOST_DEDUCED_TYPENAME range_iterator<const SinglePassRange>::type
+    begin(const SinglePassRange& rng)
+    {
+        return rng.begin();
+    }
+#endif
+
+    class MockTestBeginCollection
+    {
+    public:
+        typedef char value_type;
+        typedef const char* const_pointer;
+        typedef char* pointer;
+        typedef const_pointer const_iterator;
+        typedef pointer iterator;
+
+        MockTestBeginCollection()
+            : m_first()
+            , m_last()
+        {
+        }
+
+        const_iterator begin() const { return m_first; }
+        iterator begin() { return m_first; }
+        const_iterator end() const { return m_last; }
+        iterator end() { return m_last; }
+
+    private:
+        iterator m_first;
+        iterator m_last;
+    };
+}
+
+namespace
+{
+    void test_range_begin()
+    {
+        boost::MockTestBeginCollection c;
+        const boost::MockTestBeginCollection& const_c = c;
+        mock_std::mock_algorithm_using_begin(const_c);
+        mock_std::mock_algorithm_using_begin(c);
+    }
+}
+
+using boost::unit_test_framework::test_suite;
+
+boost::unit_test_framework::test_suite*
+init_unit_test_suite( int argc, char* argv[] )
+{
+    boost::unit_test_framework::test_suite* test = BOOST_TEST_SUITE( "Range Test Suite - begin() ADL namespace barrier" );
+
+    test->add( BOOST_TEST_CASE( &test_range_begin ) );
+
+    return test;
+}
+
+
Added: trunk/libs/range/test/end.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/range/test/end.cpp	2011-01-01 11:46:32 EST (Sat, 01 Jan 2011)
@@ -0,0 +1,119 @@
+// Boost.Range library
+//
+//  Copyright Neil Groves 2010. Use, modification and
+//  distribution is subject to 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)
+//
+// For more information, see http://www.boost.org/libs/range/
+//
+
+#include <boost/detail/workaround.hpp>
+
+#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
+#  pragma warn -8091 // supress warning in Boost.Test
+#  pragma warn -8057 // unused argument argc/argv in Boost.Test
+#endif
+
+#include <boost/range/end.hpp>
+#include <boost/test/unit_test.hpp>
+#include <boost/test/test_tools.hpp>
+#include <boost/test/included/unit_test_framework.hpp>
+
+namespace mock_std
+{
+    template<class SinglePassRange>
+    inline BOOST_DEDUCED_TYPENAME boost::range_iterator<SinglePassRange>::type
+    end(SinglePassRange& rng)
+    {
+        return rng.end();
+    }
+
+    template<class SinglePassRange>
+    inline BOOST_DEDUCED_TYPENAME boost::range_iterator<const SinglePassRange>::type
+    end(const SinglePassRange& rng)
+    {
+        return rng.end();
+    }
+
+    template<class SinglePassRange>
+    void mock_algorithm_using_end(const SinglePassRange& rng)
+    {
+        BOOST_CHECK( end(rng) == rng.end() );
+    }
+
+    template<class SinglePassRange>
+    void mock_algorithm_using_end(SinglePassRange& rng)
+    {
+        BOOST_CHECK( end(rng) == rng.end() );
+    }
+}
+
+namespace boost
+{
+#ifdef BOOST_RANGE_SIMULATE_END_WITHOUT_ADL_NAMESPACE_BARRIER
+    template<class SinglePassRange>
+    inline BOOST_DEDUCED_TYPENAME range_iterator<SinglePassRange>::type
+    end(SinglePassRange& rng)
+    {
+        return rng.end();
+    }
+
+    template<class SinglePassRange>
+    inline BOOST_DEDUCED_TYPENAME range_iterator<const SinglePassRange>::type
+    end(const SinglePassRange& rng)
+    {
+        return rng.end();
+    }
+#endif
+
+    class MockTestEndCollection
+    {
+    public:
+        typedef char value_type;
+        typedef const char* const_pointer;
+        typedef char* pointer;
+        typedef const_pointer const_iterator;
+        typedef pointer iterator;
+
+        MockTestEndCollection()
+            : m_first()
+            , m_last()
+        {
+        }
+
+        const_iterator begin() const { return m_first; }
+        iterator begin() { return m_first; }
+        const_iterator end() const { return m_last; }
+        iterator end() { return m_last; }
+
+    private:
+        iterator m_first;
+        iterator m_last;
+    };
+}
+
+namespace
+{
+    void test_range_end_adl_avoidance()
+    {
+        boost::MockTestEndCollection c;
+        const boost::MockTestEndCollection& const_c = c;
+        mock_std::mock_algorithm_using_end(const_c);
+        mock_std::mock_algorithm_using_end(c);
+    }
+}
+
+using boost::unit_test_framework::test_suite;
+
+boost::unit_test_framework::test_suite*
+init_unit_test_suite( int argc, char* argv[] )
+{
+    boost::unit_test_framework::test_suite* test = BOOST_TEST_SUITE( "Range Test Suite - end() ADL namespace barrier" );
+
+    test->add( BOOST_TEST_CASE( &test_range_end_adl_avoidance ) );
+
+    return test;
+}
+
+