From ef4156b24a69997f29984e7f2e20ec41bf04d75b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Peter=20K=C3=BCmmel?= Date: Mon, 17 Aug 2009 18:36:41 +0000 Subject: [PATCH] update to boost 1.39: delete unused folders git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31098 a592a061-630c-0410-9148-cb99ea01b6c8 --- boost/boost/multi_array/algorithm.hpp | 103 --- boost/boost/multi_array/base.hpp | 482 ------------- .../boost/multi_array/collection_concept.hpp | 62 -- boost/boost/multi_array/concept_checks.hpp | 215 ------ boost/boost/multi_array/copy_array.hpp | 68 -- boost/boost/multi_array/extent_gen.hpp | 75 -- boost/boost/multi_array/extent_range.hpp | 49 -- boost/boost/multi_array/index_gen.hpp | 81 --- boost/boost/multi_array/index_range.hpp | 188 ----- boost/boost/multi_array/iterator.hpp | 170 ----- boost/boost/multi_array/multi_array_ref.hpp | 633 ----------------- boost/boost/multi_array/range_list.hpp | 70 -- boost/boost/multi_array/storage_order.hpp | 125 ---- boost/boost/multi_array/subarray.hpp | 399 ----------- boost/boost/multi_array/types.hpp | 38 - boost/boost/multi_array/view.hpp | 472 ------------- boost/boost/pending/ct_if.hpp | 43 -- boost/boost/range/begin.hpp | 132 ---- boost/boost/range/config.hpp | 54 -- boost/boost/range/const_iterator.hpp | 64 -- boost/boost/range/const_reverse_iterator.hpp | 32 - boost/boost/range/detail/common.hpp | 117 ---- .../range/detail/implementation_help.hpp | 103 --- boost/boost/range/detail/sfinae.hpp | 77 -- boost/boost/range/difference_type.hpp | 29 - boost/boost/range/empty.hpp | 34 - boost/boost/range/end.hpp | 131 ---- boost/boost/range/functions.hpp | 27 - boost/boost/range/iterator.hpp | 72 -- boost/boost/range/iterator_range.hpp | 659 ------------------ boost/boost/range/rbegin.hpp | 65 -- boost/boost/range/rend.hpp | 65 -- boost/boost/range/result_iterator.hpp | 33 - boost/boost/range/reverse_iterator.hpp | 40 -- boost/boost/range/reverse_result_iterator.hpp | 32 - boost/boost/range/size.hpp | 36 - boost/boost/range/size_type.hpp | 78 --- boost/boost/range/value_type.hpp | 34 - boost/boost/test/detail/enable_warnings.hpp | 27 - boost/boost/test/detail/suppress_warnings.hpp | 28 - boost/boost/test/utils/nullstream.hpp | 100 --- 41 files changed, 5342 deletions(-) delete mode 100644 boost/boost/multi_array/algorithm.hpp delete mode 100644 boost/boost/multi_array/base.hpp delete mode 100644 boost/boost/multi_array/collection_concept.hpp delete mode 100644 boost/boost/multi_array/concept_checks.hpp delete mode 100644 boost/boost/multi_array/copy_array.hpp delete mode 100644 boost/boost/multi_array/extent_gen.hpp delete mode 100644 boost/boost/multi_array/extent_range.hpp delete mode 100644 boost/boost/multi_array/index_gen.hpp delete mode 100644 boost/boost/multi_array/index_range.hpp delete mode 100644 boost/boost/multi_array/iterator.hpp delete mode 100644 boost/boost/multi_array/multi_array_ref.hpp delete mode 100644 boost/boost/multi_array/range_list.hpp delete mode 100644 boost/boost/multi_array/storage_order.hpp delete mode 100644 boost/boost/multi_array/subarray.hpp delete mode 100644 boost/boost/multi_array/types.hpp delete mode 100644 boost/boost/multi_array/view.hpp delete mode 100644 boost/boost/pending/ct_if.hpp delete mode 100644 boost/boost/range/begin.hpp delete mode 100644 boost/boost/range/config.hpp delete mode 100644 boost/boost/range/const_iterator.hpp delete mode 100644 boost/boost/range/const_reverse_iterator.hpp delete mode 100644 boost/boost/range/detail/common.hpp delete mode 100644 boost/boost/range/detail/implementation_help.hpp delete mode 100644 boost/boost/range/detail/sfinae.hpp delete mode 100644 boost/boost/range/difference_type.hpp delete mode 100644 boost/boost/range/empty.hpp delete mode 100644 boost/boost/range/end.hpp delete mode 100644 boost/boost/range/functions.hpp delete mode 100644 boost/boost/range/iterator.hpp delete mode 100644 boost/boost/range/iterator_range.hpp delete mode 100644 boost/boost/range/rbegin.hpp delete mode 100644 boost/boost/range/rend.hpp delete mode 100644 boost/boost/range/result_iterator.hpp delete mode 100644 boost/boost/range/reverse_iterator.hpp delete mode 100644 boost/boost/range/reverse_result_iterator.hpp delete mode 100644 boost/boost/range/size.hpp delete mode 100644 boost/boost/range/size_type.hpp delete mode 100644 boost/boost/range/value_type.hpp delete mode 100644 boost/boost/test/detail/enable_warnings.hpp delete mode 100644 boost/boost/test/detail/suppress_warnings.hpp delete mode 100644 boost/boost/test/utils/nullstream.hpp diff --git a/boost/boost/multi_array/algorithm.hpp b/boost/boost/multi_array/algorithm.hpp deleted file mode 100644 index c749c3f974..0000000000 --- a/boost/boost/multi_array/algorithm.hpp +++ /dev/null @@ -1,103 +0,0 @@ -#ifndef BOOST_ALGORITHM_RG071801_HPP -#define BOOST_ALGORITHM_RG071801_HPP - -// -// -// Copyright (c) 1994 -// Hewlett-Packard Company -// -// Permission to use, copy, modify, distribute and sell this software -// and its documentation for any purpose is hereby granted without fee, -// provided that the above copyright notice appear in all copies and -// that both that copyright notice and this permission notice appear -// in supporting documentation. Hewlett-Packard Company makes no -// representations about the suitability of this software for any -// purpose. It is provided "as is" without express or implied warranty. -// -// -// Copyright (c) 1996-1998 -// Silicon Graphics Computer Systems, Inc. -// -// Permission to use, copy, modify, distribute and sell this software -// and its documentation for any purpose is hereby granted without fee, -// provided that the above copyright notice appear in all copies and -// that both that copyright notice and this permission notice appear -// in supporting documentation. Silicon Graphics makes no -// representations about the suitability of this software for any -// purpose. It is provided "as is" without express or implied warranty. -// - -// Copyright 2002 The Trustees of Indiana University. - -// 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) - -// Boost.MultiArray Library -// Authors: Ronald Garcia -// Jeremy Siek -// Andrew Lumsdaine -// See http://www.boost.org/libs/multi_array for documentation. - - -#include "boost/iterator.hpp" - -namespace boost { -namespace detail { -namespace multi_array { -//-------------------------------------------------- -// copy_n (not part of the C++ standard) -#if 1 - -template -OutputIter copy_n(InputIter first, Size count, - OutputIter result) { - for ( ; count > 0; --count) { - *result = *first; - ++first; - ++result; - } - return result; -} -#else // !1 - -template -OutputIter copy_n__(InputIter first, Size count, - OutputIter result, - std::input_iterator_tag) { - for ( ; count > 0; --count) { - *result = *first; - ++first; - ++result; - } - return result; -} - -template -inline OutputIter -copy_n__(RAIter first, Size count, - OutputIter result, - std::random_access_iterator_tag) { - RAIter last = first + count; - return std::copy(first, last, result); -} - -template -inline OutputIter -copy_n__(InputIter first, Size count, OutputIter result) { - typedef typename std::iterator_traits::iterator_category cat; - return copy_n__(first, count, result, cat()); -} - -template -inline OutputIter -copy_n(InputIter first, Size count, OutputIter result) { - return copy_n__(first, count, result); -} - -#endif // 1 -} // namespace multi_array -} // namespace detail -} // namespace boost - -#endif // BOOST_ALGORITHM_RG071801_HPP diff --git a/boost/boost/multi_array/base.hpp b/boost/boost/multi_array/base.hpp deleted file mode 100644 index 9eb23c6238..0000000000 --- a/boost/boost/multi_array/base.hpp +++ /dev/null @@ -1,482 +0,0 @@ -// Copyright 2002 The Trustees of Indiana University. - -// 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) - -// Boost.MultiArray Library -// Authors: Ronald Garcia -// Jeremy Siek -// Andrew Lumsdaine -// See http://www.boost.org/libs/multi_array for documentation. - -#ifndef BASE_RG071801_HPP -#define BASE_RG071801_HPP - -// -// base.hpp - some implementation base classes for from which -// functionality is acquired -// - -#include "boost/multi_array/extent_range.hpp" -#include "boost/multi_array/extent_gen.hpp" -#include "boost/multi_array/index_range.hpp" -#include "boost/multi_array/index_gen.hpp" -#include "boost/multi_array/storage_order.hpp" -#include "boost/multi_array/types.hpp" -#include "boost/config.hpp" -#include "boost/multi_array/concept_checks.hpp" //for ignore_unused_... -#include "boost/mpl/eval_if.hpp" -#include "boost/mpl/if.hpp" -#include "boost/mpl/size_t.hpp" -#include "boost/mpl/aux_/msvc_eti_base.hpp" -#include "boost/iterator/reverse_iterator.hpp" -#include "boost/static_assert.hpp" -#include "boost/type.hpp" -#include "boost/assert.hpp" -#include -#include - -namespace boost { - -///////////////////////////////////////////////////////////////////////// -// class declarations -///////////////////////////////////////////////////////////////////////// - -template > -class multi_array; - -// This is a public interface for use by end users! -namespace multi_array_types { - typedef boost::detail::multi_array::size_type size_type; - typedef std::ptrdiff_t difference_type; - typedef boost::detail::multi_array::index index; - typedef detail::multi_array::index_range index_range; - typedef detail::multi_array::extent_range extent_range; - typedef detail::multi_array::index_gen<0,0> index_gen; - typedef detail::multi_array::extent_gen<0> extent_gen; -} - - -// boost::extents and boost::indices are now a part of the public -// interface. That way users don't necessarily have to create their -// own objects. On the other hand, one may not want the overhead of -// object creation in small-memory environments. Thus, the objects -// can be left undefined by defining BOOST_MULTI_ARRAY_NO_GENERATORS -// before loading multi_array.hpp. -#if !BOOST_MULTI_ARRAY_NO_GENERATORS -namespace { - multi_array_types::extent_gen extents; - multi_array_types::index_gen indices; -} -#endif // BOOST_MULTI_ARRAY_NO_GENERATORS - -namespace detail { -namespace multi_array { - -template -class sub_array; - -template -class const_sub_array; - -template -class array_iterator; - -template -class const_multi_array_view; - -template -class multi_array_view; - -///////////////////////////////////////////////////////////////////////// -// class interfaces -///////////////////////////////////////////////////////////////////////// - -class multi_array_base { -public: - typedef multi_array_types::size_type size_type; - typedef multi_array_types::difference_type difference_type; - typedef multi_array_types::index index; - typedef multi_array_types::index_range index_range; - typedef multi_array_types::extent_range extent_range; - typedef multi_array_types::index_gen index_gen; - typedef multi_array_types::extent_gen extent_gen; -}; - -// -// value_accessor_n -// contains the routines for accessing elements from -// N-dimensional views. -// -template -class value_accessor_n : public multi_array_base { - typedef multi_array_base super_type; -public: - typedef typename super_type::index index; - - // - // public typedefs used by classes that inherit from this base - // - typedef T element; - typedef boost::multi_array value_type; - typedef sub_array reference; - typedef const_sub_array const_reference; - -protected: - // used by array operator[] and iterators to get reference types. - template - Reference access(boost::type,index idx,TPtr base, - const size_type* extents, - const index* strides, - const index* index_bases) const { - - BOOST_ASSERT(idx - index_bases[0] >= 0); - BOOST_ASSERT(size_type(idx - index_bases[0]) < extents[0]); - // return a sub_array proxy object - TPtr newbase = base + idx * strides[0]; - return Reference(newbase,extents+1,strides+1,index_bases+1); - - } - - value_accessor_n() { } - ~value_accessor_n() { } -}; - - - -// -// value_accessor_one -// contains the routines for accessing reference elements from -// 1-dimensional views. -// -template -class value_accessor_one : public multi_array_base { - typedef multi_array_base super_type; -public: - typedef typename super_type::index index; - // - // public typedefs for use by classes that inherit it. - // - typedef T element; - typedef T value_type; - typedef T& reference; - typedef T const& const_reference; - -protected: - // used by array operator[] and iterators to get reference types. - template - Reference access(boost::type,index idx,TPtr base, - const size_type* extents, - const index* strides, - const index* index_bases) const { - - ignore_unused_variable_warning(index_bases); - ignore_unused_variable_warning(extents); - BOOST_ASSERT(idx - index_bases[0] >= 0); - BOOST_ASSERT(size_type(idx - index_bases[0]) < extents[0]); - return *(base + idx * strides[0]); - } - - value_accessor_one() { } - ~value_accessor_one() { } -}; - - -///////////////////////////////////////////////////////////////////////// -// choose value accessor begins -// - -template -struct choose_value_accessor_n { - typedef value_accessor_n type; -}; - -template -struct choose_value_accessor_one { - typedef value_accessor_one type; -}; - -template -struct value_accessor_generator { - BOOST_STATIC_CONSTANT(std::size_t, dimensionality = NumDims::value); - - typedef typename - mpl::eval_if_c<(dimensionality == 1), - choose_value_accessor_one, - choose_value_accessor_n - >::type type; -}; - -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - -struct eti_value_accessor -{ - typedef int index; - typedef int size_type; - typedef int element; - typedef int index_range; - typedef int value_type; - typedef int reference; - typedef int const_reference; -}; - -template <> -struct value_accessor_generator -{ - typedef eti_value_accessor type; -}; - -template -struct associated_types - : mpl::aux::msvc_eti_base< - typename value_accessor_generator::type - >::type -{}; - -template <> -struct associated_types : eti_value_accessor {}; - -#else - -template -struct associated_types - : value_accessor_generator::type -{}; - -#endif - -// -// choose value accessor ends -///////////////////////////////////////////////////////////////////////// - - - -//////////////////////////////////////////////////////////////////////// -// multi_array_base -//////////////////////////////////////////////////////////////////////// -template -class multi_array_impl_base - : -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - public mpl::aux::msvc_eti_base< - typename value_accessor_generator >::type - >::type -#else - public value_accessor_generator >::type -#endif -{ - typedef associated_types > types; -public: - typedef typename types::index index; - typedef typename types::size_type size_type; - typedef typename types::element element; - typedef typename types::index_range index_range; - typedef typename types::value_type value_type; - typedef typename types::reference reference; - typedef typename types::const_reference const_reference; - - template - struct subarray { - typedef boost::detail::multi_array::sub_array type; - }; - - template - struct const_subarray { - typedef boost::detail::multi_array::const_sub_array type; - }; - - template - struct array_view { - typedef boost::detail::multi_array::multi_array_view type; - }; - - template - struct const_array_view { - public: - typedef boost::detail::multi_array::const_multi_array_view type; - }; - - // - // iterator support - // - typedef array_iterator,reference> iterator; - typedef array_iterator,const_reference> const_iterator; - - typedef ::boost::reverse_iterator reverse_iterator; - typedef ::boost::reverse_iterator const_reverse_iterator; - - BOOST_STATIC_CONSTANT(std::size_t, dimensionality = NumDims); -protected: - - multi_array_impl_base() { } - ~multi_array_impl_base() { } - - // Used by operator() in our array classes - template - Reference access_element(boost::type, - const IndexList& indices, - TPtr base, - const size_type* extents, - const index* strides, - const index* index_bases) const { - - ignore_unused_variable_warning(index_bases); - ignore_unused_variable_warning(extents); -#if !defined(NDEBUG) && !defined(BOOST_DISABLE_ASSERTS) - for (size_type i = 0; i != NumDims; ++i) { - BOOST_ASSERT(indices[i] - index_bases[i] >= 0); - BOOST_ASSERT(size_type(indices[i] - index_bases[i]) < extents[i]); - } -#endif - - index offset = 0; - for (size_type n = 0; n != NumDims; ++n) - offset += indices[n] * strides[n]; - - return base[offset]; - } - - template - void compute_strides(StrideList& stride_list, ExtentList& extent_list, - const general_storage_order& storage) - { - // invariant: stride = the stride for dimension n - index stride = 1; - for (size_type n = 0; n != NumDims; ++n) { - index stride_sign = +1; - - if (!storage.ascending(storage.ordering(n))) - stride_sign = -1; - - // The stride for this dimension is the product of the - // lengths of the ranks minor to it. - stride_list[storage.ordering(n)] = stride * stride_sign; - - stride *= extent_list[storage.ordering(n)]; - } - } - - // This calculates the offset to the array base pointer due to: - // 1. dimensions stored in descending order - // 2. non-zero dimension index bases - template - index - calculate_origin_offset(const StrideList& stride_list, - const ExtentList& extent_list, - const general_storage_order& storage, - const BaseList& index_base_list) - { - return - calculate_descending_dimension_offset(stride_list,extent_list, - storage) + - calculate_indexing_offset(stride_list,index_base_list); - } - - // This calculates the offset added to the base pointer that are - // caused by descending dimensions - template - index - calculate_descending_dimension_offset(const StrideList& stride_list, - const ExtentList& extent_list, - const general_storage_order& storage) - { - index offset = 0; - if (!storage.all_dims_ascending()) - for (size_type n = 0; n != NumDims; ++n) - if (!storage.ascending(n)) - offset -= (extent_list[n] - 1) * stride_list[n]; - - return offset; - } - - // This is used to reindex array_views, which are no longer - // concerned about storage order (specifically, whether dimensions - // are ascending or descending) since the viewed array handled it. - - template - index - calculate_indexing_offset(const StrideList& stride_list, - const BaseList& index_base_list) - { - index offset = 0; - for (size_type n = 0; n != NumDims; ++n) - offset -= stride_list[n] * index_base_list[n]; - return offset; - } - - // Slicing using an index_gen. - // Note that populating an index_gen creates a type that encodes - // both the number of dimensions in the current Array (NumDims), and - // the Number of dimensions for the resulting view. This allows the - // compiler to fail if the dimensions aren't completely accounted - // for. For reasons unbeknownst to me, a BOOST_STATIC_ASSERT - // within the member function template does not work. I should add a - // note to the documentation specifying that you get a damn ugly - // error message if you screw up in your slicing code. - template - ArrayRef - generate_array_view(boost::type, - const boost::detail::multi_array:: - index_gen& indices, - const size_type* extents, - const index* strides, - const index* index_bases, - TPtr base) const { - - boost::array new_strides; - boost::array new_extents; - - index offset = 0; - size_type dim = 0; - for (size_type n = 0; n != NumDims; ++n) { - const index default_start = index_bases[n]; - const index default_finish = default_start+extents[n]; - const index_range& current_range = indices.ranges_[n]; - index start = current_range.get_start(default_start); - index finish = current_range.get_finish(default_finish); - index index_factor = current_range.stride(); - - // integral trick for ceiling((finish-start) / index_factor) - index shrinkage = index_factor > 0 ? 1 : -1; - index len = (finish - start + (index_factor - shrinkage)) / index_factor; - - BOOST_ASSERT(index_bases[n] <= start && - start <= index_bases[n]+index(extents[n])); - BOOST_ASSERT(index_bases[n] <= finish && - finish <= index_bases[n]+index(extents[n])); - BOOST_ASSERT(index_factor != 0); - - // the array data pointer is modified to account for non-zero - // bases during slicing (see [Garcia] for the math involved) - offset += start * strides[n]; - - if (!current_range.is_degenerate()) { - - // The index_factor for each dimension is included into the - // strides for the array_view (see [Garcia] for the math involved). - new_strides[dim] = index_factor * strides[n]; - - // calculate new extents - new_extents[dim] = len; - ++dim; - } - } - BOOST_ASSERT(dim == NDims); - - return - ArrayRef(base+offset, - new_extents, - new_strides); - } - - -}; - -} // namespace multi_array -} // namespace detail - -} // namespace boost - -#endif // BASE_RG071801_HPP diff --git a/boost/boost/multi_array/collection_concept.hpp b/boost/boost/multi_array/collection_concept.hpp deleted file mode 100644 index c79ace1bd8..0000000000 --- a/boost/boost/multi_array/collection_concept.hpp +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2002 The Trustees of Indiana University. - -// 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) - -// Boost.MultiArray Library -// Authors: Ronald Garcia -// Jeremy Siek -// Andrew Lumsdaine -// See http://www.boost.org/libs/multi_array for documentation. - -#ifndef COLLECTION_CONCEPT_RG103101_HPP -#define COLLECTION_CONCEPT_RG103101_HPP - -#include "boost/concept_check.hpp" - -namespace boost { -namespace detail { -namespace multi_array { - - //=========================================================================== - // Collection Concept - - template - struct CollectionConcept - { - typedef typename Collection::value_type value_type; - typedef typename Collection::iterator iterator; - typedef typename Collection::const_iterator const_iterator; - typedef typename Collection::reference reference; - typedef typename Collection::const_reference const_reference; - // typedef typename Collection::pointer pointer; - typedef typename Collection::difference_type difference_type; - typedef typename Collection::size_type size_type; - - void constraints() { - boost::function_requires >(); - boost::function_requires >(); - boost::function_requires >(); - const_constraints(c); - i = c.begin(); - i = c.end(); - c.swap(c); - } - void const_constraints(const Collection& c) { - ci = c.begin(); - ci = c.end(); - n = c.size(); - b = c.empty(); - } - Collection c; - bool b; - iterator i; - const_iterator ci; - size_type n; - }; - -} -} -} -#endif // COLLECTION_CONCEPT_RG103101_HPP diff --git a/boost/boost/multi_array/concept_checks.hpp b/boost/boost/multi_array/concept_checks.hpp deleted file mode 100644 index 326f0ce6f8..0000000000 --- a/boost/boost/multi_array/concept_checks.hpp +++ /dev/null @@ -1,215 +0,0 @@ -// Copyright 2002 The Trustees of Indiana University. - -// 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) - -// Boost.MultiArray Library -// Authors: Ronald Garcia -// Jeremy Siek -// Andrew Lumsdaine -// See http://www.boost.org/libs/multi_array for documentation. - -#ifndef BOOST_MULTI_ARRAY_CONCEPT_CHECKS_RG110101_HPP -#define BOOST_MULTI_ARRAY_CONCEPT_CHECKS_RG110101_HPP - -// -// concept-checks.hpp - Checks out Const MultiArray and MultiArray -// concepts -// - -#include "boost/concept_check.hpp" -#include "boost/iterator/iterator_concepts.hpp" - -namespace boost { -namespace detail { -namespace multi_array { - - // - // idgen_helper - - // This is a helper for generating index_gen instantiations with - // the right type in order to test the call to - // operator[](index_gen). Since one would normally write: - // A[ indices[range1][range2] ]; // or - // B[ indices[index1][index2][range1] ]; - // idgen helper allows us to generate the "indices" type by - // creating it through recursive calls. - template - struct idgen_helper { - - template - static void call(Array& a, const IdxGen& idgen, Call_Type c) { - typedef typename Array::index_range index_range; - typedef typename Array::index index; - idgen_helper::call(a,idgen[c],c); - } - }; - - template <> - struct idgen_helper<0> { - - template - static void call(Array& a, const IdxGen& idgen, Call_Type) { - typedef typename Array::index_range index_range; - typedef typename Array::index index; - a[ idgen ]; - } - }; - - - template - struct ConstMultiArrayConcept - { - void constraints() { - // function_requires< CopyConstructibleConcept >(); - function_requires< boost_concepts::ForwardTraversalConcept >(); - function_requires< boost_concepts::ReadableIteratorConcept >(); - function_requires< boost_concepts::ForwardTraversalConcept >(); - function_requires< boost_concepts::ReadableIteratorConcept >(); - - // RG - a( CollectionArchetype) when available... - a[ id ]; - // Test slicing, keeping only the first dimension, losing the rest - idgen_helper::call(a,idgen[range],id); - - // Test slicing, keeping all dimensions. - idgen_helper::call(a,idgen[range],range); - - st = a.size(); - st = a.num_dimensions(); - st = Array::dimensionality; - st = a.num_elements(); - stp = a.shape(); - idp = a.strides(); - idp = a.index_bases(); - cit = a.begin(); - cit = a.end(); - crit = a.rbegin(); - crit = a.rend(); - eltp = a.origin(); - } - - typedef typename Array::value_type value_type; - typedef typename Array::reference reference; - typedef typename Array::const_reference const_reference; - typedef typename Array::size_type size_type; - typedef typename Array::difference_type difference_type; - typedef typename Array::iterator iterator; - typedef typename Array::const_iterator const_iterator; - typedef typename Array::reverse_iterator reverse_iterator; - typedef typename Array::const_reverse_iterator const_reverse_iterator; - typedef typename Array::element element; - typedef typename Array::index index; - typedef typename Array::index_gen index_gen; - typedef typename Array::index_range index_range; - typedef typename Array::extent_gen extent_gen; - typedef typename Array::extent_range extent_range; - - Array a; - size_type st; - const size_type* stp; - index id; - const index* idp; - const_iterator cit; - const_reverse_iterator crit; - const element* eltp; - index_gen idgen; - index_range range; - }; - - - template - struct MutableMultiArrayConcept - { - void constraints() { - // function_requires< CopyConstructibleConcept >(); - - function_requires< boost_concepts::ForwardTraversalConcept >(); - function_requires< boost_concepts::ReadableIteratorConcept >(); - function_requires< boost_concepts::WritableIteratorConcept >(); - function_requires< boost_concepts::ForwardTraversalConcept >(); - function_requires< boost_concepts::ReadableIteratorConcept >(); - - // RG - a( CollectionArchetype) when available... - value_type vt = a[ id ]; - - // Test slicing, keeping only the first dimension, losing the rest - idgen_helper::call(a,idgen[range],id); - - // Test slicing, keeping all dimensions. - idgen_helper::call(a,idgen[range],range); - - st = a.size(); - st = a.num_dimensions(); - st = a.num_elements(); - stp = a.shape(); - idp = a.strides(); - idp = a.index_bases(); - it = a.begin(); - it = a.end(); - rit = a.rbegin(); - rit = a.rend(); - eltp = a.origin(); - const_constraints(a); - } - - void const_constraints(const Array& a) { - - // value_type vt = a[ id ]; - - // Test slicing, keeping only the first dimension, losing the rest - idgen_helper::call(a,idgen[range],id); - - // Test slicing, keeping all dimensions. - idgen_helper::call(a,idgen[range],range); - - st = a.size(); - st = a.num_dimensions(); - st = a.num_elements(); - stp = a.shape(); - idp = a.strides(); - idp = a.index_bases(); - cit = a.begin(); - cit = a.end(); - crit = a.rbegin(); - crit = a.rend(); - eltp = a.origin(); - } - - typedef typename Array::value_type value_type; - typedef typename Array::reference reference; - typedef typename Array::const_reference const_reference; - typedef typename Array::size_type size_type; - typedef typename Array::difference_type difference_type; - typedef typename Array::iterator iterator; - typedef typename Array::const_iterator const_iterator; - typedef typename Array::reverse_iterator reverse_iterator; - typedef typename Array::const_reverse_iterator const_reverse_iterator; - typedef typename Array::element element; - typedef typename Array::index index; - typedef typename Array::index_gen index_gen; - typedef typename Array::index_range index_range; - typedef typename Array::extent_gen extent_gen; - typedef typename Array::extent_range extent_range; - - Array a; - size_type st; - const size_type* stp; - index id; - const index* idp; - iterator it; - const_iterator cit; - reverse_iterator rit; - const_reverse_iterator crit; - const element* eltp; - index_gen idgen; - index_range range; - }; - - -} // namespace multi_array -} // namespace detail -} // namespace boost - - -#endif // BOOST_MULTI_ARRAY_CONCEPT_CHECKS_RG110101_HPP diff --git a/boost/boost/multi_array/copy_array.hpp b/boost/boost/multi_array/copy_array.hpp deleted file mode 100644 index f358b2be31..0000000000 --- a/boost/boost/multi_array/copy_array.hpp +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2002 The Trustees of Indiana University. - -// 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) - -// Boost.MultiArray Library -// Authors: Ronald Garcia -// Jeremy Siek -// Andrew Lumsdaine -// See http://www.boost.org/libs/multi_array for documentation. - -#ifndef COPY_ARRAY_RG092101_HPP -#define COPY_ARRAY_RG092101_HPP - -// -// copy_array.hpp - generic code for copying the contents of one -// Basic_MultiArray to another. We assume that they are of the same -// shape -// -#include "boost/type.hpp" -#include "boost/assert.hpp" - -namespace boost { -namespace detail { -namespace multi_array { - -template -class copy_dispatch { -public: - template - static void copy_array (SourceIterator first, SourceIterator last, - DestIterator result) { - while (first != last) { - copy_array(*first++,*result++); - } - } -private: - // Array2 has to be passed by VALUE here because subarray - // pseudo-references are temporaries created by iterator::operator*() - template - static void copy_array (const Array1& source, Array2 dest) { - copy_array(source.begin(),source.end(),dest.begin()); - } - - static void copy_array (const Element& source, Element& dest) { - dest = source; - } - -}; - - -template -void copy_array (Array1& source, Array2& dest) { - BOOST_ASSERT(std::equal(source.shape(),source.shape()+source.num_dimensions(), - dest.shape())); - // Dispatch to the proper function - typedef typename Array1::element element_type; - copy_dispatch:: - copy_array(source.begin(),source.end(),dest.begin()); -} - - -} // namespace multi_array -} // namespace detail -} // namespace boost - -#endif // COPY_ARRAY_RG092101_HPP diff --git a/boost/boost/multi_array/extent_gen.hpp b/boost/boost/multi_array/extent_gen.hpp deleted file mode 100644 index b009f66fd0..0000000000 --- a/boost/boost/multi_array/extent_gen.hpp +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2002 The Trustees of Indiana University. - -// 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) - -// Boost.MultiArray Library -// Authors: Ronald Garcia -// Jeremy Siek -// Andrew Lumsdaine -// See http://www.boost.org/libs/multi_array for documentation. - -#ifndef BOOST_EXTENT_GEN_RG071801_HPP -#define BOOST_EXTENT_GEN_RG071801_HPP - -#include "boost/multi_array/extent_range.hpp" -#include "boost/multi_array/range_list.hpp" -#include "boost/multi_array/types.hpp" -#include "boost/array.hpp" -#include - -namespace boost { -namespace detail { -namespace multi_array { - - -template -class extent_gen { -public: - typedef boost::detail::multi_array::index index; - typedef boost::detail::multi_array::size_type size_type; - typedef extent_range range; -private: - typedef typename range_list_generator::type range_list; -public: - template - struct gen_type { - typedef extent_gen type; - }; - - range_list ranges_; - - extent_gen() { } - - // Used by operator[] to expand extent_gens - extent_gen(const extent_gen& rhs, - const range& a_range) - { - std::copy(rhs.ranges_.begin(),rhs.ranges_.end(),ranges_.begin()); - *ranges_.rbegin() = a_range; - } - - extent_gen - operator[](const range& a_range) - { - return extent_gen(*this,a_range); - } - - extent_gen - operator[](index idx) - { - return extent_gen(*this,range(0,idx)); - } - - static extent_gen<0> extents() { - return extent_gen<0>(); - } -}; - -} // namespace multi_array -} // namespace detail -} // namespace boost - - -#endif // BOOST_EXTENT_GEN_RG071801_HPP diff --git a/boost/boost/multi_array/extent_range.hpp b/boost/boost/multi_array/extent_range.hpp deleted file mode 100644 index d7a2eafd0d..0000000000 --- a/boost/boost/multi_array/extent_range.hpp +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2002 The Trustees of Indiana University. - -// 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) - -// Boost.MultiArray Library -// Authors: Ronald Garcia -// Jeremy Siek -// Andrew Lumsdaine -// See http://www.boost.org/libs/multi_array for documentation. - -#ifndef BOOST_EXTENT_RANGE_RG071801_HPP -#define BOOST_EXTENT_RANGE_RG071801_HPP - -#include - -namespace boost { -namespace detail { -namespace multi_array { - -template -class extent_range : private std::pair { - typedef std::pair super_type; -public: - typedef Extent index; - typedef SizeType size_type; - - extent_range(index start, index finish) : - super_type(start,finish) { } - - extent_range(index finish) : - super_type(0,finish) { } - - extent_range() : super_type(0,0) { } - - index start() const { return super_type::first; } - - index finish() const { return super_type::second; } - - size_type size() const { return super_type::second - super_type::first; } -}; - -} // namespace multi_array -} // namespace detail -} // namespace boost - - -#endif // BOOST_EXTENT_RANGE_RG071801_HPP diff --git a/boost/boost/multi_array/index_gen.hpp b/boost/boost/multi_array/index_gen.hpp deleted file mode 100644 index da8e1fdda7..0000000000 --- a/boost/boost/multi_array/index_gen.hpp +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright 2002 The Trustees of Indiana University. - -// 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) - -// Boost.MultiArray Library -// Authors: Ronald Garcia -// Jeremy Siek -// Andrew Lumsdaine -// See http://www.boost.org/libs/multi_array for documentation. - -#ifndef BOOST_INDEX_GEN_RG071801_HPP -#define BOOST_INDEX_GEN_RG071801_HPP - -#include "boost/array.hpp" -#include "boost/multi_array/index_range.hpp" -#include "boost/multi_array/range_list.hpp" -#include "boost/multi_array/types.hpp" -#include -#include - -namespace boost { -namespace detail { -namespace multi_array { - - -template -struct index_gen { -private: - typedef ::boost::detail::multi_array::index index; - typedef ::boost::detail::multi_array::size_type size_type; - typedef index_range range; -public: - template - struct gen_type { - typedef index_gen type; - }; - - typedef typename range_list_generator::type range_list; - range_list ranges_; - - index_gen() { } - - template - explicit index_gen(const index_gen& rhs, - const range& r) - { - std::copy(rhs.ranges_.begin(),rhs.ranges_.end(),ranges_.begin()); - *ranges_.rbegin() = r; - } - - index_gen - operator[](const range& r) const - { - index_gen tmp; - std::copy(ranges_.begin(),ranges_.end(),tmp.ranges_.begin()); - *tmp.ranges_.rbegin() = r; - return tmp; - } - - index_gen - operator[](index idx) const - { - index_gen tmp; - std::copy(ranges_.begin(),ranges_.end(),tmp.ranges_.begin()); - *tmp.ranges_.rbegin() = range(idx); - return tmp; - } - - static index_gen<0,0> indices() { - return index_gen<0,0>(); - } -}; - -} // namespace multi_array -} // namespace detail -} // namespace boost - - -#endif // BOOST_INDEX_GEN_RG071801_HPP diff --git a/boost/boost/multi_array/index_range.hpp b/boost/boost/multi_array/index_range.hpp deleted file mode 100644 index 3d6035e744..0000000000 --- a/boost/boost/multi_array/index_range.hpp +++ /dev/null @@ -1,188 +0,0 @@ -// Copyright 2002 The Trustees of Indiana University. - -// 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) - -// Boost.MultiArray Library -// Authors: Ronald Garcia -// Jeremy Siek -// Andrew Lumsdaine -// See http://www.boost.org/libs/multi_array for documentation. - -#ifndef BOOST_INDEX_RANGE_RG071801_HPP -#define BOOST_INDEX_RANGE_RG071801_HPP - -#include -#include -#include - -// For representing intervals, also with stride. -// A degenerate range is a range with one element. - -// Thanks to Doug Gregor for the really cool idea of using the -// comparison operators to express various interval types! - -// Internally, we represent the interval as half-open. - -namespace boost { -namespace detail { -namespace multi_array { - - template - class index_range { - public: - typedef Index index; - typedef SizeType size_type; - - private: - static index from_start() - { return (std::numeric_limits::min)(); } - - static index to_end() - { return (std::numeric_limits::max)(); } - - public: - - index_range() - { - start_ = from_start(); - finish_ = to_end(); - stride_ = 1; - degenerate_ = false; - } - - explicit index_range(index pos) - { - start_ = pos; - finish_ = pos+1; - stride_ = 1; - degenerate_ = true; - } - - explicit index_range(index start, index finish, index stride=1) - : start_(start), finish_(finish), stride_(stride), - degenerate_(false) - { } - - - // These are for chaining assignments to an index_range - index_range& start(index s) { - start_ = s; - degenerate_ = false; - return *this; - } - - index_range& finish(index f) { - finish_ = f; - degenerate_ = false; - return *this; - } - - index_range& stride(index s) { stride_ = s; return *this; } - - index start() const - { - return start_; - } - - index get_start(index low_index_range = index_range::from_start()) const - { - if (start_ == from_start()) - return low_index_range; - return start_; - } - - index finish() const - { - return finish_; - } - - index get_finish(index high_index_range = index_range::to_end()) const - { - if (finish_ == to_end()) - return high_index_range; - return finish_; - } - - index stride() const { return stride_; } - - void set_index_range(index start, index finish, index stride=1) - { - start_ = start; - finish_ = finish; - stride_ = stride; - } - - static index_range all() - { return index_range(from_start(), to_end(), 1); } - - bool is_degenerate() const { return degenerate_; } - - index_range operator-(index shift) const - { - return index_range(start_ - shift, finish_ - shift, stride_); - } - - index_range operator+(index shift) const - { - return index_range(start_ + shift, finish_ + shift, stride_); - } - - index operator[](unsigned i) const - { - return start_ + i * stride_; - } - - index operator()(unsigned i) const - { - return start_ + i * stride_; - } - - // add conversion to std::slice? - - public: - index start_, finish_, stride_; - bool degenerate_; - }; - - // Express open and closed interval end-points using the comparison - // operators. - - // left closed - template - inline index_range - operator<=(Index s, const index_range& r) - { - return index_range(s, r.finish(), r.stride()); - } - - // left open - template - inline index_range - operator<(Index s, const index_range& r) - { - return index_range(s + 1, r.finish(), r.stride()); - } - - // right open - template - inline index_range - operator<(const index_range& r, Index f) - { - return index_range(r.start(), f, r.stride()); - } - - // right closed - template - inline index_range - operator<=(const index_range& r, Index f) - { - return index_range(r.start(), f + 1, r.stride()); - } - -} // namespace multi_array -} // namespace detail -} // namespace boost - -#endif // BOOST_INDEX_RANGE_RG071801_HPP diff --git a/boost/boost/multi_array/iterator.hpp b/boost/boost/multi_array/iterator.hpp deleted file mode 100644 index 59e7724f55..0000000000 --- a/boost/boost/multi_array/iterator.hpp +++ /dev/null @@ -1,170 +0,0 @@ -// Copyright 2002 The Trustees of Indiana University. - -// 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) - -// Boost.MultiArray Library -// Authors: Ronald Garcia -// Jeremy Siek -// Andrew Lumsdaine -// See http://www.boost.org/libs/multi_array for documentation. - -#ifndef ITERATOR_RG071801_HPP -#define ITERATOR_RG071801_HPP - -// -// iterator.hpp - implementation of iterators for the -// multi-dimensional array class -// - -#include "boost/multi_array/base.hpp" -#include "boost/iterator/iterator_facade.hpp" -#include "boost/mpl/aux_/msvc_eti_base.hpp" -#include -#include -#include - -namespace boost { -namespace detail { -namespace multi_array { - -///////////////////////////////////////////////////////////////////////// -// iterator components -///////////////////////////////////////////////////////////////////////// - -template -struct operator_arrow_proxy -{ - operator_arrow_proxy(T const& px) : value_(px) {} - T* operator->() const { return &value_; } - // This function is needed for MWCW and BCC, which won't call operator-> - // again automatically per 13.3.1.2 para 8 - operator T*() const { return &value_; } - mutable T value_; -}; - -template -class array_iterator; - -template -class array_iterator - : public - iterator_facade< - array_iterator - , typename associated_types::value_type - , boost::random_access_traversal_tag - , Reference - > - , private -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - mpl::aux::msvc_eti_base::type -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - >::type -#endif -{ - friend class iterator_core_access; - typedef detail::multi_array::associated_types access_t; - - typedef iterator_facade< - array_iterator - , typename detail::multi_array::associated_types::value_type - , boost::random_access_traversal_tag - , Reference - > facade_type; - - typedef typename access_t::index index; - typedef typename access_t::size_type size_type; - -#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS - template - friend class array_iterator; -#else - public: -#endif - - index idx_; - TPtr base_; - const size_type* extents_; - const index* strides_; - const index* index_base_; - -public: - // Typedefs to circumvent ambiguities between parent classes - typedef typename facade_type::reference reference; - typedef typename facade_type::value_type value_type; - typedef typename facade_type::difference_type difference_type; - - array_iterator() {} - - array_iterator(index idx, TPtr base, const size_type* extents, - const index* strides, - const index* index_base) : - idx_(idx), base_(base), extents_(extents), - strides_(strides), index_base_(index_base) { } - - template - array_iterator( - const array_iterator& rhs - , typename boost::enable_if_convertible::type* = 0 - ) - : idx_(rhs.idx_), base_(rhs.base_), extents_(rhs.extents_), - strides_(rhs.strides_), index_base_(rhs.index_base_) { } - - - // RG - we make our own operator-> - operator_arrow_proxy - operator->() const - { - return operator_arrow_proxy(this->dereference()); - } - - - reference dereference() const - { - typedef typename value_accessor_generator::type accessor; - return accessor::access(boost::type(), - idx_, - base_, - extents_, - strides_, - index_base_); - } - - void increment() { ++idx_; } - void decrement() { --idx_; } - - template - bool equal(IteratorAdaptor& rhs) const { - const std::size_t N = NumDims::value; - return (idx_ == rhs.idx_) && - (base_ == rhs.base_) && - ( (extents_ == rhs.extents_) || - std::equal(extents_,extents_+N,rhs.extents_) ) && - ( (strides_ == rhs.strides_) || - std::equal(strides_,strides_+N,rhs.strides_) ) && - ( (index_base_ == rhs.index_base_) || - std::equal(index_base_,index_base_+N,rhs.index_base_) ); - } - - template - void advance(DifferenceType n) { - idx_ += n; - } - - template - typename facade_type::difference_type - distance_to(IteratorAdaptor& rhs) const { - return rhs.idx_ - idx_; - } - - -}; - -} // namespace multi_array -} // namespace detail -} // namespace boost - -#endif // ITERATOR_RG071801_HPP diff --git a/boost/boost/multi_array/multi_array_ref.hpp b/boost/boost/multi_array/multi_array_ref.hpp deleted file mode 100644 index a8e0f7a124..0000000000 --- a/boost/boost/multi_array/multi_array_ref.hpp +++ /dev/null @@ -1,633 +0,0 @@ -// Copyright 2002 The Trustees of Indiana University. - -// 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) - -// Boost.MultiArray Library -// Authors: Ronald Garcia -// Jeremy Siek -// Andrew Lumsdaine -// See http://www.boost.org/libs/multi_array for documentation. - -#ifndef BOOST_MULTI_ARRAY_REF_RG071801_HPP -#define BOOST_MULTI_ARRAY_REF_RG071801_HPP - -// -// multi_array_ref.hpp - code for creating "views" of array data. -// - -#include "boost/multi_array/base.hpp" -#include "boost/multi_array/collection_concept.hpp" -#include "boost/multi_array/concept_checks.hpp" -#include "boost/multi_array/iterator.hpp" -#include "boost/multi_array/storage_order.hpp" -#include "boost/multi_array/subarray.hpp" -#include "boost/multi_array/view.hpp" -#include "boost/multi_array/algorithm.hpp" -#include "boost/type_traits/is_integral.hpp" -#include "boost/array.hpp" -#include "boost/concept_check.hpp" -#include "boost/functional.hpp" -#include "boost/limits.hpp" -#include -#include -#include -#include - -namespace boost { - -template -class const_multi_array_ref : - public detail::multi_array::multi_array_impl_base -{ - typedef detail::multi_array::multi_array_impl_base super_type; -public: - typedef typename super_type::value_type value_type; - typedef typename super_type::const_reference const_reference; - typedef typename super_type::const_iterator const_iterator; - typedef typename super_type::const_reverse_iterator const_reverse_iterator; - typedef typename super_type::element element; - typedef typename super_type::size_type size_type; - typedef typename super_type::difference_type difference_type; - typedef typename super_type::index index; - typedef typename super_type::extent_range extent_range; - typedef general_storage_order storage_order_type; - - // template typedefs - template - struct const_array_view { - typedef boost::detail::multi_array::const_multi_array_view type; - }; - - template - struct array_view { - typedef boost::detail::multi_array::multi_array_view type; - }; - -#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS - // make const_multi_array_ref a friend of itself - template - friend class const_multi_array_ref; -#endif - - // This ensures that const_multi_array_ref types with different TPtr - // types can convert to each other - template - const_multi_array_ref(const const_multi_array_ref& other) - : base_(other.base_), storage_(other.storage_), - extent_list_(other.extent_list_), - stride_list_(other.stride_list_), - index_base_list_(other.index_base_list_), - origin_offset_(other.origin_offset_), - directional_offset_(other.directional_offset_), - num_elements_(other.num_elements_) { } - - template - explicit const_multi_array_ref(TPtr base, const ExtentList& extents) : - base_(base), storage_(c_storage_order()) { - boost::function_requires< - detail::multi_array::CollectionConcept >(); - - index_base_list_.assign(0); - init_multi_array_ref(extents.begin()); - } - - template - explicit const_multi_array_ref(TPtr base, const ExtentList& extents, - const general_storage_order& so) : - base_(base), storage_(so) { - boost::function_requires< - detail::multi_array::CollectionConcept >(); - - index_base_list_.assign(0); - init_multi_array_ref(extents.begin()); - } - - explicit const_multi_array_ref(TPtr base, - const detail::multi_array:: - extent_gen& ranges) : - base_(base), storage_(c_storage_order()) { - - init_from_extent_gen(ranges); - } - - explicit const_multi_array_ref(TPtr base, - const detail::multi_array:: - extent_gen& ranges, - const general_storage_order& so) : - base_(base), storage_(so) { - - init_from_extent_gen(ranges); - } - - template - void assign(InputIterator begin, InputIterator end) { - boost::function_requires >(); - - InputIterator in_iter = begin; - T* out_iter = base_; - std::size_t copy_count=0; - while (in_iter != end && copy_count < num_elements_) { - *out_iter++ = *in_iter++; - copy_count++; - } - } - - template -#ifdef BOOST_NO_SFINAE - void -#else - typename - disable_if::type,void >::type -#endif // BOOST_NO_SFINAE - reindex(const BaseList& values) { - boost::function_requires< - detail::multi_array::CollectionConcept >(); - boost::detail::multi_array:: - copy_n(values.begin(),num_dimensions(),index_base_list_.begin()); - origin_offset_ = - this->calculate_origin_offset(stride_list_,extent_list_, - storage_,index_base_list_); - } - - void reindex(index value) { - index_base_list_.assign(value); - origin_offset_ = - this->calculate_origin_offset(stride_list_,extent_list_, - storage_,index_base_list_); - } - - template - void reshape(const SizeList& extents) { - boost::function_requires< - detail::multi_array::CollectionConcept >(); - BOOST_ASSERT(num_elements_ == - std::accumulate(extents.begin(),extents.end(), - size_type(1),std::multiplies())); - - std::copy(extents.begin(),extents.end(),extent_list_.begin()); - this->compute_strides(stride_list_,extent_list_,storage_); - - origin_offset_ = - this->calculate_origin_offset(stride_list_,extent_list_, - storage_,index_base_list_); - } - - size_type num_dimensions() const { return NumDims; } - - size_type size() const { return extent_list_.front(); } - - // given reshaping functionality, this is the max possible size. - size_type max_size() const { return num_elements(); } - - bool empty() const { return size() == 0; } - - const size_type* shape() const { - return extent_list_.data(); - } - - const index* strides() const { - return stride_list_.data(); - } - - const element* origin() const { return base_+origin_offset_; } - const element* data() const { return base_; } - - size_type num_elements() const { return num_elements_; } - - const index* index_bases() const { - return index_base_list_.data(); - } - - - const storage_order_type& storage_order() const { - return storage_; - } - - template - const element& operator()(IndexList indices) const { - boost::function_requires< - detail::multi_array::CollectionConcept >(); - return super_type::access_element(boost::type(), - indices,origin(), - shape(),strides(),index_bases()); - } - - // Only allow const element access - const_reference operator[](index idx) const { - return super_type::access(boost::type(), - idx,origin(), - shape(),strides(),index_bases()); - } - - // see generate_array_view in base.hpp -#if !defined(BOOST_MSVC) || BOOST_MSVC > 1300 - template -#else - template // else ICE -#endif // BOOST_MSVC - typename const_array_view::type - operator[](const detail::multi_array:: - index_gen& indices) - const { - typedef typename const_array_view::type return_type; - return - super_type::generate_array_view(boost::type(), - indices, - shape(), - strides(), - index_bases(), - origin()); - } - - const_iterator begin() const { - return const_iterator(*index_bases(),origin(), - shape(),strides(),index_bases()); - } - - const_iterator end() const { - return const_iterator(*index_bases()+(index)*shape(),origin(), - shape(),strides(),index_bases()); - } - - const_reverse_iterator rbegin() const { - return const_reverse_iterator(end()); - } - - const_reverse_iterator rend() const { - return const_reverse_iterator(begin()); - } - - - template - bool operator==(const - const_multi_array_ref& rhs) - const { - if(std::equal(extent_list_.begin(), - extent_list_.end(), - rhs.extent_list_.begin())) - return std::equal(begin(),end(),rhs.begin()); - else return false; - } - - template - bool operator<(const - const_multi_array_ref& rhs) - const { - return std::lexicographical_compare(begin(),end(),rhs.begin(),rhs.end()); - } - - template - bool operator!=(const - const_multi_array_ref& rhs) - const { - return !(*this == rhs); - } - - template - bool operator>(const - const_multi_array_ref& rhs) - const { - return rhs < *this; - } - - template - bool operator<=(const - const_multi_array_ref& rhs) - const { - return !(*this > rhs); - } - - template - bool operator>=(const - const_multi_array_ref& rhs) - const { - return !(*this < rhs); - } - - -#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS -protected: -#else -public: -#endif - - typedef boost::array size_list; - typedef boost::array index_list; - - // This is used by multi_array, which is a subclass of this - void set_base_ptr(TPtr new_base) { base_ = new_base; } - - - // This constructor supports multi_array's default constructor - // and constructors from multi_array_ref, subarray, and array_view - explicit - const_multi_array_ref(TPtr base, - const storage_order_type& so, - const index * index_bases, - const size_type* extents) : - base_(base), storage_(so), origin_offset_(0), directional_offset_(0) - { - // If index_bases or extents is null, then initialize the corresponding - // private data to zeroed lists. - if(index_bases) { - boost::detail::multi_array:: - copy_n(index_bases,NumDims,index_base_list_.begin()); - } else { - std::fill_n(index_base_list_.begin(),NumDims,0); - } - if(extents) { - init_multi_array_ref(extents); - } else { - boost::array extent_list; - extent_list.assign(0); - init_multi_array_ref(extent_list.begin()); - } - } - - - TPtr base_; - storage_order_type storage_; - size_list extent_list_; - index_list stride_list_; - index_list index_base_list_; - index origin_offset_; - index directional_offset_; - size_type num_elements_; - -private: - // const_multi_array_ref cannot be assigned to (no deep copies!) - const_multi_array_ref& operator=(const const_multi_array_ref& other); - - void init_from_extent_gen(const - detail::multi_array:: - extent_gen& ranges) { - - typedef boost::array extent_list; - - // get the index_base values - std::transform(ranges.ranges_.begin(),ranges.ranges_.end(), - index_base_list_.begin(), - boost::mem_fun_ref(&extent_range::start)); - - // calculate the extents - extent_list extents; - std::transform(ranges.ranges_.begin(),ranges.ranges_.end(), - extents.begin(), - boost::mem_fun_ref(&extent_range::size)); - - init_multi_array_ref(extents.begin()); - } - - -#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS -protected: -#else -public: -#endif - // RG - move me! - template - void init_multi_array_ref(InputIterator extents_iter) { - boost::function_requires >(); - - boost::detail::multi_array:: - copy_n(extents_iter,num_dimensions(),extent_list_.begin()); - - // Calculate the array size - num_elements_ = std::accumulate(extent_list_.begin(),extent_list_.end(), - size_type(1),std::multiplies()); - - this->compute_strides(stride_list_,extent_list_,storage_); - - origin_offset_ = - this->calculate_origin_offset(stride_list_,extent_list_, - storage_,index_base_list_); - directional_offset_ = - this->calculate_descending_dimension_offset(stride_list_,extent_list_, - storage_); - } -}; - -template -class multi_array_ref : - public const_multi_array_ref -{ - typedef const_multi_array_ref super_type; -public: - typedef typename super_type::value_type value_type; - typedef typename super_type::reference reference; - typedef typename super_type::iterator iterator; - typedef typename super_type::reverse_iterator reverse_iterator; - typedef typename super_type::const_reference const_reference; - typedef typename super_type::const_iterator const_iterator; - typedef typename super_type::const_reverse_iterator const_reverse_iterator; - typedef typename super_type::element element; - typedef typename super_type::size_type size_type; - typedef typename super_type::difference_type difference_type; - typedef typename super_type::index index; - typedef typename super_type::extent_range extent_range; - - typedef typename super_type::storage_order_type storage_order_type; - typedef typename super_type::index_list index_list; - typedef typename super_type::size_list size_list; - - template - struct const_array_view { - typedef boost::detail::multi_array::const_multi_array_view type; - }; - - template - struct array_view { - typedef boost::detail::multi_array::multi_array_view type; - }; - - template - explicit multi_array_ref(T* base, const ExtentList& extents) : - super_type(base,extents) { - boost::function_requires< - detail::multi_array::CollectionConcept >(); - } - - template - explicit multi_array_ref(T* base, const ExtentList& extents, - const general_storage_order& so) : - super_type(base,extents,so) { - boost::function_requires< - detail::multi_array::CollectionConcept >(); - } - - - explicit multi_array_ref(T* base, - const detail::multi_array:: - extent_gen& ranges) : - super_type(base,ranges) { } - - - explicit multi_array_ref(T* base, - const detail::multi_array:: - extent_gen& - ranges, - const general_storage_order& so) : - super_type(base,ranges,so) { } - - - // Assignment from other ConstMultiArray types. - template - multi_array_ref& operator=(const ConstMultiArray& other) { - function_requires< - detail::multi_array:: - ConstMultiArrayConcept >(); - - // make sure the dimensions agree - BOOST_ASSERT(other.num_dimensions() == this->num_dimensions()); - BOOST_ASSERT(std::equal(other.shape(),other.shape()+this->num_dimensions(), - this->shape())); - // iterator-based copy - std::copy(other.begin(),other.end(),this->begin()); - return *this; - } - - multi_array_ref& operator=(const multi_array_ref& other) { - if (&other != this) { - // make sure the dimensions agree - - BOOST_ASSERT(other.num_dimensions() == this->num_dimensions()); - BOOST_ASSERT(std::equal(other.shape(), - other.shape()+this->num_dimensions(), - this->shape())); - // iterator-based copy - std::copy(other.begin(),other.end(),this->begin()); - } - return *this; - } - - element* origin() { return super_type::base_+super_type::origin_offset_; } - - element* data() { return super_type::base_; } - - template - element& operator()(const IndexList& indices) { - boost::function_requires< - detail::multi_array::CollectionConcept >(); - return super_type::access_element(boost::type(), - indices,origin(), - this->shape(),this->strides(), - this->index_bases()); - } - - - reference operator[](index idx) { - return super_type::access(boost::type(), - idx,origin(), - this->shape(),this->strides(), - this->index_bases()); - } - - - // See note attached to generate_array_view in base.hpp -#if !defined(BOOST_MSVC) || BOOST_MSVC > 1300 - template -#else - template // else ICE -#endif // BOOST_MSVC - typename array_view::type - operator[](const detail::multi_array:: - index_gen& indices) { - typedef typename array_view::type return_type; - return - super_type::generate_array_view(boost::type(), - indices, - this->shape(), - this->strides(), - this->index_bases(), - origin()); - } - - - iterator begin() { - return iterator(*this->index_bases(),origin(),this->shape(), - this->strides(),this->index_bases()); - } - - iterator end() { - return iterator(*this->index_bases()+(index)*this->shape(),origin(), - this->shape(),this->strides(), - this->index_bases()); - } - - // rbegin() and rend() written naively to thwart MSVC ICE. - reverse_iterator rbegin() { - reverse_iterator ri(end()); - return ri; - } - - reverse_iterator rend() { - reverse_iterator ri(begin()); - return ri; - } - - // Using declarations don't seem to work for g++ - // These are the proxies to work around this. - - const element* origin() const { return super_type::origin(); } - const element* data() const { return super_type::data(); } - - template - const element& operator()(const IndexList& indices) const { - boost::function_requires< - detail::multi_array::CollectionConcept >(); - return super_type::operator()(indices); - } - - const_reference operator[](index idx) const { - return super_type::access(boost::type(), - idx,origin(), - this->shape(),this->strides(), - this->index_bases()); - } - - // See note attached to generate_array_view in base.hpp -#if !defined(BOOST_MSVC) || BOOST_MSVC > 1300 - template -#else - template // else ICE -#endif // BOOST_MSVC - typename const_array_view::type - operator[](const detail::multi_array:: - index_gen& indices) - const { - return super_type::operator[](indices); - } - - const_iterator begin() const { - return super_type::begin(); - } - - const_iterator end() const { - return super_type::end(); - } - - const_reverse_iterator rbegin() const { - return super_type::rbegin(); - } - - const_reverse_iterator rend() const { - return super_type::rend(); - } - -protected: - // This is only supplied to support multi_array's default constructor - explicit multi_array_ref(T* base, - const storage_order_type& so, - const index* index_bases, - const size_type* extents) : - super_type(base,so,index_bases,extents) { } - -}; - -} // namespace boost - -#endif // BOOST_MULTI_ARRAY_REF_RG071801_HPP diff --git a/boost/boost/multi_array/range_list.hpp b/boost/boost/multi_array/range_list.hpp deleted file mode 100644 index 406571c5b0..0000000000 --- a/boost/boost/multi_array/range_list.hpp +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2002 The Trustees of Indiana University. - -// 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) - -// Boost.MultiArray Library -// Authors: Ronald Garcia -// Jeremy Siek -// Andrew Lumsdaine -// See http://www.boost.org/libs/multi_array for documentation. - -#ifndef RANGE_LIST_RG072501_HPP -#define RANGE_LIST_RG072501_HPP -// -// range_list.hpp - helper to build boost::arrays for *_set types -// - -#include "boost/array.hpp" - -namespace boost { -namespace detail { -namespace multi_array { - -///////////////////////////////////////////////////////////////////////// -// choose range list begins -// - -struct choose_range_list_n { - template - struct bind { - typedef boost::array type; - }; -}; - -struct choose_range_list_zero { - template - struct bind { - typedef boost::array type; - }; -}; - - -template -struct range_list_gen_helper { - typedef choose_range_list_n choice; -}; - -template <> -struct range_list_gen_helper<0> { - typedef choose_range_list_zero choice; -}; - -template -struct range_list_generator { -private: - typedef typename range_list_gen_helper::choice Choice; -public: - typedef typename Choice::template bind::type type; -}; - -// -// choose range list ends -///////////////////////////////////////////////////////////////////////// - -} // namespace multi_array -} // namespace detail -} // namespace boost - -#endif // RANGE_LIST_RG072501_HPP diff --git a/boost/boost/multi_array/storage_order.hpp b/boost/boost/multi_array/storage_order.hpp deleted file mode 100644 index 3eb71360c1..0000000000 --- a/boost/boost/multi_array/storage_order.hpp +++ /dev/null @@ -1,125 +0,0 @@ -// Copyright 2002 The Trustees of Indiana University. - -// 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) - -// Boost.MultiArray Library -// Authors: Ronald Garcia -// Jeremy Siek -// Andrew Lumsdaine -// See http://www.boost.org/libs/multi_array for documentation. - -#ifndef BOOST_STORAGE_ORDER_RG071801_HPP -#define BOOST_STORAGE_ORDER_RG071801_HPP - -#include "boost/multi_array/types.hpp" -#include "boost/array.hpp" -#include "boost/multi_array/algorithm.hpp" -#include -#include -#include -#include -#include - -namespace boost { - - // RG - This is to make things work with VC++. So sad, so sad. - class c_storage_order; - class fortran_storage_order; - - template - class general_storage_order - { - public: - typedef detail::multi_array::size_type size_type; - template - general_storage_order(OrderingIter ordering, - AscendingIter ascending) { - boost::detail::multi_array::copy_n(ordering,NumDims,ordering_.begin()); - boost::detail::multi_array::copy_n(ascending,NumDims,ascending_.begin()); - } - - // RG - ideally these would not be necessary, but some compilers - // don't like template conversion operators. I suspect that not - // too many folk will feel the need to use customized - // storage_order objects, I sacrifice that feature for compiler support. - general_storage_order(const c_storage_order&) { - for (size_type i=0; i != NumDims; ++i) { - ordering_[i] = NumDims - 1 - i; - } - ascending_.assign(true); - } - - general_storage_order(const fortran_storage_order&) { - for (size_type i=0; i != NumDims; ++i) { - ordering_[i] = i; - } - ascending_.assign(true); - } - - size_type ordering(size_type dim) const { return ordering_[dim]; } - bool ascending(size_type dim) const { return ascending_[dim]; } - - bool all_dims_ascending() const { - return std::accumulate(ascending_.begin(),ascending_.end(),true, - std::logical_and()); - } - - bool operator==(general_storage_order const& rhs) const { - return (ordering_ == rhs.ordering_) && - (ascending_ == rhs.ascending_); - } - - protected: - boost::array ordering_; - boost::array ascending_; - }; - - class c_storage_order - { - typedef detail::multi_array::size_type size_type; - public: - // This is the idiom for creating your own custom storage orders. - // Not supported by all compilers though! -#ifndef __MWERKS__ // Metrowerks screams "ambiguity!" - template - operator general_storage_order() const { - boost::array ordering; - boost::array ascending; - - for (size_type i=0; i != NumDims; ++i) { - ordering[i] = NumDims - 1 - i; - ascending[i] = true; - } - return general_storage_order(ordering.begin(), - ascending.begin()); - } -#endif - }; - - class fortran_storage_order - { - typedef detail::multi_array::size_type size_type; - public: - // This is the idiom for creating your own custom storage orders. - // Not supported by all compilers though! -#ifndef __MWERKS__ // Metrowerks screams "ambiguity!" - template - operator general_storage_order() const { - boost::array ordering; - boost::array ascending; - - for (size_type i=0; i != NumDims; ++i) { - ordering[i] = i; - ascending[i] = true; - } - return general_storage_order(ordering.begin(), - ascending.begin()); - } -#endif - }; - -} // namespace boost - -#endif // BOOST_ARRAY_STORAGE_RG071801_HPP diff --git a/boost/boost/multi_array/subarray.hpp b/boost/boost/multi_array/subarray.hpp deleted file mode 100644 index c336f82d1e..0000000000 --- a/boost/boost/multi_array/subarray.hpp +++ /dev/null @@ -1,399 +0,0 @@ -// Copyright 2002 The Trustees of Indiana University. - -// 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) - -// Boost.MultiArray Library -// Authors: Ronald Garcia -// Jeremy Siek -// Andrew Lumsdaine -// See http://www.boost.org/libs/multi_array for documentation. - -#ifndef SUBARRAY_RG071801_HPP -#define SUBARRAY_RG071801_HPP - -// -// subarray.hpp - used to implement standard operator[] on -// multi_arrays -// - -#include "boost/multi_array/base.hpp" -#include "boost/multi_array/concept_checks.hpp" -#include "boost/limits.hpp" -#include "boost/type.hpp" -#include -#include -#include - -namespace boost { -namespace detail { -namespace multi_array { - -// -// const_sub_array -// multi_array's proxy class to allow multiple overloads of -// operator[] in order to provide a clean multi-dimensional array -// interface. -template -class const_sub_array : - public boost::detail::multi_array::multi_array_impl_base -{ - typedef boost::detail::multi_array::multi_array_impl_base super_type; -public: - typedef typename super_type::value_type value_type; - typedef typename super_type::const_reference const_reference; - typedef typename super_type::const_iterator const_iterator; - typedef typename super_type::const_reverse_iterator const_reverse_iterator; - typedef typename super_type::element element; - typedef typename super_type::size_type size_type; - typedef typename super_type::difference_type difference_type; - typedef typename super_type::index index; - typedef typename super_type::extent_range extent_range; - - // template typedefs - template - struct const_array_view { - typedef boost::detail::multi_array::const_multi_array_view type; - }; - - template - struct array_view { - typedef boost::detail::multi_array::multi_array_view type; - }; - - // Allow default copy constructor as well. - - template - const_sub_array (const const_sub_array& rhs) : - base_(rhs.base_), extents_(rhs.extents_), strides_(rhs.strides_), - index_base_(rhs.index_base_) { - } - - // const_sub_array always returns const types, regardless of its own - // constness. - const_reference operator[](index idx) const { - return super_type::access(boost::type(), - idx,base_,shape(),strides(),index_bases()); - } - - template - const element& operator()(const IndexList& indices) const { - boost::function_requires< - detail::multi_array::CollectionConcept >(); - return super_type::access_element(boost::type(), - indices,origin(), - shape(),strides(),index_bases()); - } - - // see generate_array_view in base.hpp -#if !defined(BOOST_MSVC) || BOOST_MSVC > 1300 - template -#else - template // else ICE -#endif // BOOST_MSVC - typename const_array_view::type - operator[](const boost::detail::multi_array:: - index_gen& indices) - const { - typedef typename const_array_view::type return_type; - return - super_type::generate_array_view(boost::type(), - indices, - shape(), - strides(), - index_bases(), - base_); - } - - template - bool operator<(const const_sub_array& rhs) const { - return std::lexicographical_compare(begin(),end(),rhs.begin(),rhs.end()); - } - - template - bool operator==(const const_sub_array& rhs) const { - if(std::equal(shape(),shape()+num_dimensions(),rhs.shape())) - return std::equal(begin(),end(),rhs.begin()); - else return false; - } - - template - bool operator!=(const const_sub_array& rhs) const { - return !(*this == rhs); - } - - template - bool operator>(const const_sub_array& rhs) const { - return rhs < *this; - } - - template - bool operator<=(const const_sub_array& rhs) const { - return !(*this > rhs); - } - - template - bool operator>=(const const_sub_array& rhs) const { - return !(*this < rhs); - } - - const_iterator begin() const { - return const_iterator(*index_bases(),origin(), - shape(),strides(),index_bases()); - } - - const_iterator end() const { - return const_iterator(*index_bases()+(index)*shape(),origin(), - shape(),strides(),index_bases()); - } - - const_reverse_iterator rbegin() const { - return const_reverse_iterator(end()); - } - - const_reverse_iterator rend() const { - return const_reverse_iterator(begin()); - } - - TPtr origin() const { return base_; } - size_type size() const { return extents_[0]; } - size_type max_size() const { return num_elements(); } - bool empty() const { return size() == 0; } - size_type num_dimensions() const { return NumDims; } - const size_type* shape() const { return extents_; } - const index* strides() const { return strides_; } - const index* index_bases() const { return index_base_; } - - size_type num_elements() const { - return std::accumulate(shape(),shape() + num_dimensions(), - size_type(1), std::multiplies()); - } - - -#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS -protected: - template friend class value_accessor_n; - template friend class const_sub_array; -#else -public: // Should be protected -#endif - - const_sub_array (TPtr base, - const size_type* extents, - const index* strides, - const index* index_base) : - base_(base), extents_(extents), strides_(strides), - index_base_(index_base) { - } - - TPtr base_; - const size_type* extents_; - const index* strides_; - const index* index_base_; -private: - // const_sub_array cannot be assigned to (no deep copies!) - const_sub_array& operator=(const const_sub_array&); -}; - - -// -// sub_array -// multi_array's proxy class to allow multiple overloads of -// operator[] in order to provide a clean multi-dimensional array -// interface. -template -class sub_array : public const_sub_array -{ - typedef const_sub_array super_type; -public: - typedef typename super_type::element element; - typedef typename super_type::reference reference; - typedef typename super_type::index index; - typedef typename super_type::size_type size_type; - typedef typename super_type::iterator iterator; - typedef typename super_type::reverse_iterator reverse_iterator; - typedef typename super_type::const_reference const_reference; - typedef typename super_type::const_iterator const_iterator; - typedef typename super_type::const_reverse_iterator const_reverse_iterator; - - // template typedefs - template - struct const_array_view { - typedef boost::detail::multi_array::const_multi_array_view type; - }; - - template - struct array_view { - typedef boost::detail::multi_array::multi_array_view type; - }; - - // Assignment from other ConstMultiArray types. - template - sub_array& operator=(const ConstMultiArray& other) { - function_requires< boost::detail::multi_array::ConstMultiArrayConcept< - ConstMultiArray, NumDims> >(); - - // make sure the dimensions agree - BOOST_ASSERT(other.num_dimensions() == this->num_dimensions()); - BOOST_ASSERT(std::equal(other.shape(),other.shape()+this->num_dimensions(), - this->shape())); - // iterator-based copy - std::copy(other.begin(),other.end(),begin()); - return *this; - } - - - sub_array& operator=(const sub_array& other) { - if (&other != this) { - // make sure the dimensions agree - BOOST_ASSERT(other.num_dimensions() == this->num_dimensions()); - BOOST_ASSERT(std::equal(other.shape(), - other.shape()+this->num_dimensions(), - this->shape())); - // iterator-based copy - std::copy(other.begin(),other.end(),begin()); - } - return *this; - } - - T* origin() { return this->base_; } - const T* origin() const { return this->base_; } - - reference operator[](index idx) { - return super_type::access(boost::type(), - idx,this->base_,this->shape(),this->strides(), - this->index_bases()); - } - - // see generate_array_view in base.hpp -#if !defined(BOOST_MSVC) || BOOST_MSVC > 1300 - template -#else - template // else ICE -#endif // BOOST_MSVC - typename array_view::type - operator[](const boost::detail::multi_array:: - index_gen& indices) { - typedef typename array_view::type return_type; - return - super_type::generate_array_view(boost::type(), - indices, - this->shape(), - this->strides(), - this->index_bases(), - origin()); - } - - template - element& operator()(const IndexList& indices) { - boost::function_requires< - detail::multi_array::CollectionConcept >(); - return super_type::access_element(boost::type(), - indices,origin(), - this->shape(),this->strides(), - this->index_bases()); - } - - iterator begin() { - return iterator(*this->index_bases(),origin(), - this->shape(),this->strides(),this->index_bases()); - } - - iterator end() { - return iterator(*this->index_bases()+(index)*this->shape(),origin(), - this->shape(),this->strides(),this->index_bases()); - } - - // RG - rbegin() and rend() written naively to thwart MSVC ICE. - reverse_iterator rbegin() { - reverse_iterator ri(end()); - return ri; - } - - reverse_iterator rend() { - reverse_iterator ri(begin()); - return ri; - } - - // - // proxies - // - - template - const element& operator()(const IndexList& indices) const { - boost::function_requires< - detail::multi_array::CollectionConcept >(); - return super_type::operator()(indices); - } - - const_reference operator[](index idx) const { - return super_type::operator[](idx); - } - - // see generate_array_view in base.hpp -#if !defined(BOOST_MSVC) || BOOST_MSVC > 1300 - template -#else - template // else ICE -#endif // BOOST_MSVC - typename const_array_view::type - operator[](const boost::detail::multi_array:: - index_gen& indices) - const { - return super_type::operator[](indices); - } - - const_iterator begin() const { - return super_type::begin(); - } - - const_iterator end() const { - return super_type::end(); - } - - const_reverse_iterator rbegin() const { - return super_type::rbegin(); - } - - const_reverse_iterator rend() const { - return super_type::rend(); - } - -#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS -private: - template friend class value_accessor_n; -#else -public: // should be private -#endif - - sub_array (T* base, - const size_type* extents, - const index* strides, - const index* index_base) : - super_type(base,extents,strides,index_base) { - } - -}; - -} // namespace multi_array -} // namespace detail -// -// traits classes to get sub_array types -// -template -class subarray_gen { - typedef typename Array::element element; -public: - typedef boost::detail::multi_array::sub_array type; -}; - -template -class const_subarray_gen { - typedef typename Array::element element; -public: - typedef boost::detail::multi_array::const_sub_array type; -}; -} // namespace boost - -#endif // SUBARRAY_RG071801_HPP diff --git a/boost/boost/multi_array/types.hpp b/boost/boost/multi_array/types.hpp deleted file mode 100644 index 5ef173b623..0000000000 --- a/boost/boost/multi_array/types.hpp +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2002 The Trustees of Indiana University. - -// 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) - -// Boost.MultiArray Library -// Authors: Ronald Garcia -// Jeremy Siek -// Andrew Lumsdaine -// See http://www.boost.org/libs/multi_array for documentation. - - -#ifndef BOOST_MULTI_ARRAY_TYPES_RG071801_HPP -#define BOOST_MULTI_ARRAY_TYPES_RG071801_HPP - -// -// types.hpp - supply types that are needed by several headers -// -#include "boost/config.hpp" -#include - -namespace boost { -namespace detail { -namespace multi_array{ - -// needed typedefs -typedef std::size_t size_type; -typedef std::ptrdiff_t index; - -} // namespace multi_array -} // namespace detail -} // namespace boost - - - - -#endif // BOOST_MULTI_ARRAY_TYPES_RG071801_HPP diff --git a/boost/boost/multi_array/view.hpp b/boost/boost/multi_array/view.hpp deleted file mode 100644 index 75d698f35e..0000000000 --- a/boost/boost/multi_array/view.hpp +++ /dev/null @@ -1,472 +0,0 @@ -// Copyright 2002 The Trustees of Indiana University. - -// 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) - -// Boost.MultiArray Library -// Authors: Ronald Garcia -// Jeremy Siek -// Andrew Lumsdaine -// See http://www.boost.org/libs/multi_array for documentation. - -#ifndef BOOST_MULTI_ARRAY_VIEW_RG071301_HPP -#define BOOST_MULTI_ARRAY_VIEW_RG071301_HPP - -// -// view.hpp - code for creating "views" of array data. -// - -#include "boost/multi_array/base.hpp" -#include "boost/multi_array/concept_checks.hpp" -#include "boost/multi_array/iterator.hpp" -#include "boost/multi_array/storage_order.hpp" -#include "boost/multi_array/subarray.hpp" -#include "boost/multi_array/algorithm.hpp" -#include "boost/type_traits/is_integral.hpp" -#include "boost/array.hpp" -#include "boost/limits.hpp" -#include -#include -#include -#include - -namespace boost { -namespace detail { -namespace multi_array { - -// TPtr = const T* defaulted in base.hpp -template -class const_multi_array_view : - public boost::detail::multi_array::multi_array_impl_base -{ - typedef boost::detail::multi_array::multi_array_impl_base super_type; -public: - typedef typename super_type::value_type value_type; - typedef typename super_type::const_reference const_reference; - typedef typename super_type::const_iterator const_iterator; - typedef typename super_type::const_reverse_iterator const_reverse_iterator; - typedef typename super_type::element element; - typedef typename super_type::size_type size_type; - typedef typename super_type::difference_type difference_type; - typedef typename super_type::index index; - typedef typename super_type::extent_range extent_range; - - // template typedefs - template - struct const_array_view { - typedef boost::detail::multi_array::const_multi_array_view type; - }; - - template - struct array_view { - typedef boost::detail::multi_array::multi_array_view type; - }; - - template - const_multi_array_view(const - const_multi_array_view& other) : - base_(other.base_), origin_offset_(other.origin_offset_), - num_elements_(other.num_elements_), extent_list_(other.extent_list_), - stride_list_(other.stride_list_), index_base_list_(other.index_base_list_) - { } - - - template -#ifdef BOOST_NO_SFINAE - void -#else - typename - disable_if::type,void >::type -#endif - reindex(const BaseList& values) { - boost::function_requires< - detail::multi_array::CollectionConcept >(); - boost::detail::multi_array:: - copy_n(values.begin(),num_dimensions(),index_base_list_.begin()); - origin_offset_ = - this->calculate_indexing_offset(stride_list_,index_base_list_); - } - - void reindex(index value) { - index_base_list_.assign(value); - origin_offset_ = - this->calculate_indexing_offset(stride_list_,index_base_list_); - } - - size_type num_dimensions() const { return NumDims; } - - size_type size() const { return extent_list_.front(); } - size_type max_size() const { return num_elements(); } - bool empty() const { return size() == 0; } - - const size_type* shape() const { - return extent_list_.data(); - } - - const index* strides() const { - return stride_list_.data(); - } - - const T* origin() const { return base_+origin_offset_; } - - size_type num_elements() const { return num_elements_; } - - const index* index_bases() const { - return index_base_list_.data(); - } - - template - const element& operator()(IndexList indices) const { - boost::function_requires< - detail::multi_array::CollectionConcept >(); - return super_type::access_element(boost::type(), - indices,origin(), - shape(),strides(),index_bases()); - } - - // Only allow const element access - const_reference operator[](index idx) const { - return super_type::access(boost::type(), - idx,origin(), - shape(),strides(), - index_bases()); - } - - // see generate_array_view in base.hpp -#if !defined(BOOST_MSVC) || BOOST_MSVC > 1300 - template -#else - template // else ICE -#endif // BOOST_MSVC - typename const_array_view::type - operator[](const boost::detail::multi_array:: - index_gen& indices) - const { - typedef typename const_array_view::type return_type; - return - super_type::generate_array_view(boost::type(), - indices, - shape(), - strides(), - index_bases(), - origin()); - } - const_iterator begin() const { - return const_iterator(*index_bases(),origin(), - shape(),strides(),index_bases()); - } - - const_iterator end() const { - return const_iterator(*index_bases()+(index)*shape(),origin(), - shape(),strides(),index_bases()); - } - - const_reverse_iterator rbegin() const { - return const_reverse_iterator(end()); - } - - const_reverse_iterator rend() const { - return const_reverse_iterator(begin()); - } - - - template - bool operator==(const - const_multi_array_view& rhs) - const { - if(std::equal(extent_list_.begin(), - extent_list_.end(), - rhs.extent_list_.begin())) - return std::equal(begin(),end(),rhs.begin()); - else return false; - } - - template - bool operator<(const - const_multi_array_view& rhs) - const { - return std::lexicographical_compare(begin(),end(),rhs.begin(),rhs.end()); - } - - template - bool operator!=(const - const_multi_array_view& rhs) - const { - return !(*this == rhs); - } - - template - bool operator>(const - const_multi_array_view& rhs) - const { - return rhs < *this; - } - - template - bool operator<=(const - const_multi_array_view& rhs) - const { - return !(*this > rhs); - } - - template - bool operator>=(const - const_multi_array_view& rhs) - const { - return !(*this < rhs); - } - - -#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS -protected: - template friend class multi_array_impl_base; - template friend class const_multi_array_view; -#else -public: // should be protected -#endif - - // This constructor is used by multi_array_impl_base::generate_array_view - // to create strides - template - explicit const_multi_array_view(TPtr base, - const ExtentList& extents, - const boost::array& strides): - base_(base), origin_offset_(0) { - - index_base_list_.assign(0); - - // Get the extents and strides - boost::detail::multi_array:: - copy_n(extents.begin(),NumDims,extent_list_.begin()); - boost::detail::multi_array:: - copy_n(strides.begin(),NumDims,stride_list_.begin()); - - // Calculate the array size - num_elements_ = std::accumulate(extent_list_.begin(),extent_list_.end(), - size_type(1),std::multiplies()); - } - - typedef boost::array size_list; - typedef boost::array index_list; - - TPtr base_; - index origin_offset_; - size_type num_elements_; - size_list extent_list_; - index_list stride_list_; - index_list index_base_list_; - -private: - // const_multi_array_view cannot be assigned to (no deep copies!) - const_multi_array_view& operator=(const const_multi_array_view& other); -}; - - -template -class multi_array_view : - public const_multi_array_view -{ - typedef const_multi_array_view super_type; -public: - typedef typename super_type::value_type value_type; - typedef typename super_type::reference reference; - typedef typename super_type::iterator iterator; - typedef typename super_type::reverse_iterator reverse_iterator; - typedef typename super_type::const_reference const_reference; - typedef typename super_type::const_iterator const_iterator; - typedef typename super_type::const_reverse_iterator const_reverse_iterator; - typedef typename super_type::element element; - typedef typename super_type::size_type size_type; - typedef typename super_type::difference_type difference_type; - typedef typename super_type::index index; - typedef typename super_type::extent_range extent_range; - - // template typedefs - template - struct const_array_view { - typedef boost::detail::multi_array::const_multi_array_view type; - }; - - template - struct array_view { - typedef boost::detail::multi_array::multi_array_view type; - }; - - // Assignment from other ConstMultiArray types. - template - multi_array_view& operator=(const ConstMultiArray& other) { - function_requires< - boost::detail::multi_array:: - ConstMultiArrayConcept >(); - - // make sure the dimensions agree - BOOST_ASSERT(other.num_dimensions() == this->num_dimensions()); - BOOST_ASSERT(std::equal(other.shape(),other.shape()+this->num_dimensions(), - this->shape())); - // iterator-based copy - std::copy(other.begin(),other.end(),begin()); - return *this; - } - - - multi_array_view& operator=(const multi_array_view& other) { - if (&other != this) { - // make sure the dimensions agree - BOOST_ASSERT(other.num_dimensions() == this->num_dimensions()); - BOOST_ASSERT(std::equal(other.shape(), - other.shape()+this->num_dimensions(), - this->shape())); - // iterator-based copy - std::copy(other.begin(),other.end(),begin()); - } - return *this; - } - - element* origin() { return this->base_+this->origin_offset_; } - - template - element& operator()(const IndexList& indices) { - boost::function_requires< - detail::multi_array::CollectionConcept >(); - return super_type::access_element(boost::type(), - indices,origin(), - this->shape(),this->strides(), - this->index_bases()); - } - - - reference operator[](index idx) { - return super_type::access(boost::type(), - idx,origin(), - this->shape(),this->strides(), - this->index_bases()); - } - - - // see generate_array_view in base.hpp -#if !defined(BOOST_MSVC) || BOOST_MSVC > 1300 - template -#else - template // else ICE -#endif // BOOST_MSVC - typename array_view::type - operator[](const boost::detail::multi_array:: - index_gen& indices) { - typedef typename array_view::type return_type; - return - super_type::generate_array_view(boost::type(), - indices, - this->shape(), - this->strides(), - this->index_bases(), - origin()); - } - - - iterator begin() { - return iterator(*this->index_bases(),origin(), - this->shape(),this->strides(), - this->index_bases()); - } - - iterator end() { - return iterator(*this->index_bases()+(index)*this->shape(),origin(), - this->shape(),this->strides(), - this->index_bases()); - } - - reverse_iterator rbegin() { - return reverse_iterator(end()); - } - - reverse_iterator rend() { - return reverse_iterator(begin()); - } - - // Using declarations don't seem to work for g++ - // These are the proxies to work around this. - - const element* origin() const { return super_type::origin(); } - - template - const element& operator()(const IndexList& indices) const { - boost::function_requires< - detail::multi_array::CollectionConcept >(); - return super_type::operator()(indices); - } - - const_reference operator[](index idx) const { - return super_type::operator[](idx); - } - - // see generate_array_view in base.hpp -#if !defined(BOOST_MSVC) || BOOST_MSVC > 1300 - template -#else - template // else ICE -#endif // BOOST_MSVC - typename const_array_view::type - operator[](const boost::detail::multi_array:: - index_gen& indices) - const { - return super_type::operator[](indices); - } - - const_iterator begin() const { - return super_type::begin(); - } - - const_iterator end() const { - return super_type::end(); - } - - const_reverse_iterator rbegin() const { - return super_type::rbegin(); - } - - const_reverse_iterator rend() const { - return super_type::rend(); - } - -#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS -private: - template friend class multi_array_impl_base; -#else -public: // should be private -#endif - - // constructor used by multi_array_impl_base::generate_array_view to - // generate array views - template - explicit multi_array_view(T* base, - const ExtentList& extents, - const boost::array& strides) : - super_type(base,extents,strides) { } - -}; - -} // namespace multi_array -} // namespace detail - -// -// traits classes to get array_view types -// -template -class array_view_gen { - typedef typename Array::element element; -public: - typedef boost::detail::multi_array::multi_array_view type; -}; - -template -class const_array_view_gen { - typedef typename Array::element element; -public: - typedef boost::detail::multi_array::const_multi_array_view type; -}; - -} // namespace boost - -#endif // BOOST_MULTI_ARRAY_VIEW_RG071301_HPP - diff --git a/boost/boost/pending/ct_if.hpp b/boost/boost/pending/ct_if.hpp deleted file mode 100644 index a9b801e57f..0000000000 --- a/boost/boost/pending/ct_if.hpp +++ /dev/null @@ -1,43 +0,0 @@ -// (C) Copyright Jeremy Siek 2000. -// 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) - -// This header replaces the implementation of ct_if that preceded the -// introduction of Boost.MPL with a facade that defers to that reviewed and -// accepted library. - -// Author: Ronald Garcia -// Date: 20 October, 2006 - - -#ifndef BOOST_CT_IF_HPP -#define BOOST_CT_IF_HPP - - -// A stub implementation in terms of Boost.MPL - -#include -#include -#include -// true_type and false_type are used by applications of ct_if -#include - -namespace boost { - - template - struct ct_and : boost::mpl::and_ {}; - - template - struct ct_not : mpl::not_ {}; - - template - struct ct_if : mpl::if_c {}; - - template - struct ct_if_t : mpl::if_ {}; - -} // namespace boost - -#endif // BOOST_CT_IF_HPP - diff --git a/boost/boost/range/begin.hpp b/boost/boost/range/begin.hpp deleted file mode 100644 index a4a5e10fe0..0000000000 --- a/boost/boost/range/begin.hpp +++ /dev/null @@ -1,132 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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_BEGIN_HPP -#define BOOST_RANGE_BEGIN_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif - -#include - -#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING -#include -#else - -#include - -namespace boost -{ - -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \ - !BOOST_WORKAROUND(__GNUC__, < 3) \ - /**/ -namespace range_detail -{ -#endif - - ////////////////////////////////////////////////////////////////////// - // primary template - ////////////////////////////////////////////////////////////////////// - - template< typename C > - inline BOOST_DEDUCED_TYPENAME range_iterator::type - range_begin( C& c ) - { - // - // If you get a compile-error here, it is most likely because - // you have not implemented range_begin() properly in - // the namespace of C - // - return c.begin(); - } - - ////////////////////////////////////////////////////////////////////// - // pair - ////////////////////////////////////////////////////////////////////// - - template< typename Iterator > - inline Iterator range_begin( const std::pair& p ) - { - return p.first; - } - - template< typename Iterator > - inline Iterator range_begin( std::pair& p ) - { - return p.first; - } - - ////////////////////////////////////////////////////////////////////// - // array - ////////////////////////////////////////////////////////////////////// - - // - // May this be discarded? Or is it needed for bad compilers? - // - template< typename T, std::size_t sz > - inline const T* range_begin( const T (&a)[sz] ) - { - return a; - } - - template< typename T, std::size_t sz > - inline T* range_begin( T (&a)[sz] ) - { - return a; - } - - -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \ - !BOOST_WORKAROUND(__GNUC__, < 3) \ - /**/ -} // namespace 'range_detail' -#endif - - -template< class T > -inline BOOST_DEDUCED_TYPENAME range_iterator::type begin( T& r ) -{ -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \ - !BOOST_WORKAROUND(__GNUC__, < 3) \ - /**/ - using namespace range_detail; -#endif - return range_begin( r ); -} - -template< class T > -inline BOOST_DEDUCED_TYPENAME range_iterator::type begin( const T& r ) -{ -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \ - !BOOST_WORKAROUND(__GNUC__, < 3) \ - /**/ - using namespace range_detail; -#endif - return range_begin( r ); -} - -} // namespace boost - -#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - -namespace boost -{ - template< class T > - inline BOOST_DEDUCED_TYPENAME range_iterator::type - const_begin( const T& r ) - { - return boost::begin( r ); - } -} - -#endif - diff --git a/boost/boost/range/config.hpp b/boost/boost/range/config.hpp deleted file mode 100644 index 4e7fb24f89..0000000000 --- a/boost/boost/range/config.hpp +++ /dev/null @@ -1,54 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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_CONFIG_HPP -#define BOOST_RANGE_CONFIG_HPP - -#include - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif - -#include - -#ifdef BOOST_RANGE_DEDUCED_TYPENAME -#error "macro already defined!" -#endif - -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) -# define BOOST_RANGE_DEDUCED_TYPENAME typename -#else -# if BOOST_WORKAROUND(BOOST_MSVC, == 1300) && !defined(_MSC_EXTENSIONS) -# define BOOST_RANGE_DEDUCED_TYPENAME typename -# else -# define BOOST_RANGE_DEDUCED_TYPENAME BOOST_DEDUCED_TYPENAME -# endif -#endif - -#ifdef BOOST_RANGE_NO_ARRAY_SUPPORT -#error "macro already defined!" -#endif - -#if BOOST_WORKAROUND( BOOST_MSVC, < 1300 ) || BOOST_WORKAROUND( __MWERKS__, <= 0x3003 ) -#define BOOST_RANGE_NO_ARRAY_SUPPORT 1 -#endif - -#ifdef BOOST_RANGE_NO_ARRAY_SUPPORT -#define BOOST_RANGE_ARRAY_REF() (boost_range_array) -#define BOOST_RANGE_NO_STATIC_ASSERT -#else -#define BOOST_RANGE_ARRAY_REF() (&boost_range_array) -#endif - - - -#endif - diff --git a/boost/boost/range/const_iterator.hpp b/boost/boost/range/const_iterator.hpp deleted file mode 100644 index 195f9d4e7a..0000000000 --- a/boost/boost/range/const_iterator.hpp +++ /dev/null @@ -1,64 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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_CONST_ITERATOR_HPP -#define BOOST_RANGE_CONST_ITERATOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif - -#include - -#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -#include -#else - -#include -#include -#include - -namespace boost -{ - ////////////////////////////////////////////////////////////////////////// - // default - ////////////////////////////////////////////////////////////////////////// - - template< typename C > - struct range_const_iterator - { - typedef BOOST_DEDUCED_TYPENAME C::const_iterator type; - }; - - ////////////////////////////////////////////////////////////////////////// - // pair - ////////////////////////////////////////////////////////////////////////// - - template< typename Iterator > - struct range_const_iterator< std::pair > - { - typedef Iterator type; - }; - - ////////////////////////////////////////////////////////////////////////// - // array - ////////////////////////////////////////////////////////////////////////// - - template< typename T, std::size_t sz > - struct range_const_iterator< T[sz] > - { - typedef const T* type; - }; - -} // namespace boost - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -#endif diff --git a/boost/boost/range/const_reverse_iterator.hpp b/boost/boost/range/const_reverse_iterator.hpp deleted file mode 100644 index 215bcc776f..0000000000 --- a/boost/boost/range/const_reverse_iterator.hpp +++ /dev/null @@ -1,32 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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_CONST_REVERSE_ITERATOR_HPP -#define BOOST_RANGE_CONST_REVERSE_ITERATOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif - -#include - -namespace boost -{ - // - // This interface is deprecated, use range_reverse_iterator - // - - template< typename C > - struct range_const_reverse_iterator : range_reverse_iterator - { }; - -} // namespace boost - -#endif diff --git a/boost/boost/range/detail/common.hpp b/boost/boost/range/detail/common.hpp deleted file mode 100644 index f7539f5f68..0000000000 --- a/boost/boost/range/detail/common.hpp +++ /dev/null @@ -1,117 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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_COMMON_HPP -#define BOOST_RANGE_DETAIL_COMMON_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif - -#include -#include -#include -#include -#include -#include -#include - -////////////////////////////////////////////////////////////////////////////// -// missing partial specialization workaround. -////////////////////////////////////////////////////////////////////////////// - -namespace boost -{ - namespace range_detail - { - // 1 = std containers - // 2 = std::pair - // 3 = const std::pair - // 4 = array - // 5 = const array - // 6 = char array - // 7 = wchar_t array - // 8 = char* - // 9 = const char* - // 10 = whar_t* - // 11 = const wchar_t* - // 12 = string - - typedef mpl::int_<1>::type std_container_; - typedef mpl::int_<2>::type std_pair_; - typedef mpl::int_<3>::type const_std_pair_; - typedef mpl::int_<4>::type array_; - typedef mpl::int_<5>::type const_array_; - typedef mpl::int_<6>::type char_array_; - typedef mpl::int_<7>::type wchar_t_array_; - typedef mpl::int_<8>::type char_ptr_; - typedef mpl::int_<9>::type const_char_ptr_; - typedef mpl::int_<10>::type wchar_t_ptr_; - typedef mpl::int_<11>::type const_wchar_t_ptr_; - typedef mpl::int_<12>::type string_; - - template< typename C > - struct range_helper - { - static C* c; - static C ptr; - - BOOST_STATIC_CONSTANT( bool, is_pair_ = sizeof( boost::range_detail::is_pair_impl( c ) ) == sizeof( yes_type ) ); - BOOST_STATIC_CONSTANT( bool, is_char_ptr_ = sizeof( boost::range_detail::is_char_ptr_impl( ptr ) ) == sizeof( yes_type ) ); - BOOST_STATIC_CONSTANT( bool, is_const_char_ptr_ = sizeof( boost::range_detail::is_const_char_ptr_impl( ptr ) ) == sizeof( yes_type ) ); - BOOST_STATIC_CONSTANT( bool, is_wchar_t_ptr_ = sizeof( boost::range_detail::is_wchar_t_ptr_impl( ptr ) ) == sizeof( yes_type ) ); - BOOST_STATIC_CONSTANT( bool, is_const_wchar_t_ptr_ = sizeof( boost::range_detail::is_const_wchar_t_ptr_impl( ptr ) ) == sizeof( yes_type ) ); - BOOST_STATIC_CONSTANT( bool, is_char_array_ = sizeof( boost::range_detail::is_char_array_impl( ptr ) ) == sizeof( yes_type ) ); - BOOST_STATIC_CONSTANT( bool, is_wchar_t_array_ = sizeof( boost::range_detail::is_wchar_t_array_impl( ptr ) ) == sizeof( yes_type ) ); - BOOST_STATIC_CONSTANT( bool, is_string_ = (boost::type_traits::ice_or::value )); - BOOST_STATIC_CONSTANT( bool, is_array_ = boost::is_array::value ); - - }; - - template< typename C > - class range - { - typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::range_detail::range_helper::is_pair_, - boost::range_detail::std_pair_, - void >::type pair_t; - typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::range_detail::range_helper::is_array_, - boost::range_detail::array_, - pair_t >::type array_t; - typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::range_detail::range_helper::is_string_, - boost::range_detail::string_, - array_t >::type string_t; - typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::range_detail::range_helper::is_const_char_ptr_, - boost::range_detail::const_char_ptr_, - string_t >::type const_char_ptr_t; - typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::range_detail::range_helper::is_char_ptr_, - boost::range_detail::char_ptr_, - const_char_ptr_t >::type char_ptr_t; - typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::range_detail::range_helper::is_const_wchar_t_ptr_, - boost::range_detail::const_wchar_t_ptr_, - char_ptr_t >::type const_wchar_ptr_t; - typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::range_detail::range_helper::is_wchar_t_ptr_, - boost::range_detail::wchar_t_ptr_, - const_wchar_ptr_t >::type wchar_ptr_t; - typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::range_detail::range_helper::is_wchar_t_array_, - boost::range_detail::wchar_t_array_, - wchar_ptr_t >::type wchar_array_t; - typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::range_detail::range_helper::is_char_array_, - boost::range_detail::char_array_, - wchar_array_t >::type char_array_t; - public: - typedef BOOST_RANGE_DEDUCED_TYPENAME boost::mpl::if_c< ::boost::is_void::value, - boost::range_detail::std_container_, - char_array_t >::type type; - }; // class 'range' - } -} - -#endif - diff --git a/boost/boost/range/detail/implementation_help.hpp b/boost/boost/range/detail/implementation_help.hpp deleted file mode 100644 index ca12fa4d10..0000000000 --- a/boost/boost/range/detail/implementation_help.hpp +++ /dev/null @@ -1,103 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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_IMPLEMENTATION_HELP_HPP -#define BOOST_RANGE_DETAIL_IMPLEMENTATION_HELP_HPP - -#include -#include -#include -#include -#include - -#ifndef BOOST_NO_CWCHAR -#include -#endif - -namespace boost -{ - namespace range_detail - { - template - inline void boost_range_silence_warning( const T& ) { } - - ///////////////////////////////////////////////////////////////////// - // end() help - ///////////////////////////////////////////////////////////////////// - - inline const char* str_end( const char* s, const char* ) - { - return s + strlen( s ); - } - -#ifndef BOOST_NO_CWCHAR - inline const wchar_t* str_end( const wchar_t* s, const wchar_t* ) - { - return s + wcslen( s ); - } -#else - inline const wchar_t* str_end( const wchar_t* s, const wchar_t* ) - { - if( s == 0 || s[0] == 0 ) - return s; - while( *++s != 0 ) - ; - return s; - } -#endif - - template< class Char > - inline Char* str_end( Char* s ) - { - return const_cast( str_end( s, s ) ); - } - - template< class T, std::size_t sz > - inline T* array_end( T BOOST_RANGE_ARRAY_REF()[sz] ) - { - return boost_range_array + sz; - } - - template< class T, std::size_t sz > - inline const T* array_end( const T BOOST_RANGE_ARRAY_REF()[sz] ) - { - return boost_range_array + sz; - } - - ///////////////////////////////////////////////////////////////////// - // size() help - ///////////////////////////////////////////////////////////////////// - - template< class Char > - inline std::size_t str_size( const Char* const& s ) - { - return str_end( s ) - s; - } - - template< class T, std::size_t sz > - inline std::size_t array_size( T BOOST_RANGE_ARRAY_REF()[sz] ) - { - boost_range_silence_warning( boost_range_array ); - return sz; - } - - template< class T, std::size_t sz > - inline std::size_t array_size( const T BOOST_RANGE_ARRAY_REF()[sz] ) - { - boost_range_silence_warning( boost_range_array ); - return sz; - } - - } // namespace 'range_detail' - -} // namespace 'boost' - - -#endif diff --git a/boost/boost/range/detail/sfinae.hpp b/boost/boost/range/detail/sfinae.hpp deleted file mode 100644 index 5b2c61e71e..0000000000 --- a/boost/boost/range/detail/sfinae.hpp +++ /dev/null @@ -1,77 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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_SFINAE_HPP -#define BOOST_RANGE_DETAIL_SFINAE_HPP - -#include -#include -#include -#include - - -namespace boost -{ - namespace range_detail - { - using type_traits::yes_type; - using type_traits::no_type; - - ////////////////////////////////////////////////////////////////////// - // string - ////////////////////////////////////////////////////////////////////// - - yes_type is_string_impl( const char* const ); - yes_type is_string_impl( const wchar_t* const ); - no_type is_string_impl( ... ); - - template< std::size_t sz > - yes_type is_char_array_impl( char BOOST_RANGE_ARRAY_REF()[sz] ); - template< std::size_t sz > - yes_type is_char_array_impl( const char BOOST_RANGE_ARRAY_REF()[sz] ); - no_type is_char_array_impl( ... ); - - template< std::size_t sz > - yes_type is_wchar_t_array_impl( wchar_t BOOST_RANGE_ARRAY_REF()[sz] ); - template< std::size_t sz > - yes_type is_wchar_t_array_impl( const wchar_t BOOST_RANGE_ARRAY_REF()[sz] ); - no_type is_wchar_t_array_impl( ... ); - - yes_type is_char_ptr_impl( char* const ); - no_type is_char_ptr_impl( ... ); - - yes_type is_const_char_ptr_impl( const char* const ); - no_type is_const_char_ptr_impl( ... ); - - yes_type is_wchar_t_ptr_impl( wchar_t* const ); - no_type is_wchar_t_ptr_impl( ... ); - - yes_type is_const_wchar_t_ptr_impl( const wchar_t* const ); - no_type is_const_wchar_t_ptr_impl( ... ); - - ////////////////////////////////////////////////////////////////////// - // pair - ////////////////////////////////////////////////////////////////////// - - template< typename Iterator > - yes_type is_pair_impl( const std::pair* ); - no_type is_pair_impl( ... ); - - ////////////////////////////////////////////////////////////////////// - // tags - ////////////////////////////////////////////////////////////////////// - - struct char_or_wchar_t_array_tag {}; - - } // namespace 'range_detail' - -} // namespace 'boost' - -#endif diff --git a/boost/boost/range/difference_type.hpp b/boost/boost/range/difference_type.hpp deleted file mode 100644 index 164288fee4..0000000000 --- a/boost/boost/range/difference_type.hpp +++ /dev/null @@ -1,29 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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_DIFFERENCE_TYPE_HPP -#define BOOST_RANGE_DIFFERENCE_TYPE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif - -#include -#include -#include - -namespace boost -{ - template< class T > - struct range_difference : iterator_difference< typename range_iterator::type > - { }; -} - -#endif diff --git a/boost/boost/range/empty.hpp b/boost/boost/range/empty.hpp deleted file mode 100644 index 78c4e85135..0000000000 --- a/boost/boost/range/empty.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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_EMPTY_HPP -#define BOOST_RANGE_EMPTY_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif - -#include -#include -#include - -namespace boost -{ - - template< class T > - inline bool empty( const T& r ) - { - return boost::begin( r ) == boost::end( r ); - } - -} // namepace 'boost' - - -#endif diff --git a/boost/boost/range/end.hpp b/boost/boost/range/end.hpp deleted file mode 100644 index 3063c02c65..0000000000 --- a/boost/boost/range/end.hpp +++ /dev/null @@ -1,131 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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_END_HPP -#define BOOST_RANGE_END_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif - -#include - -#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING -#include -#else - -#include -#include -#include - -namespace boost -{ - -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \ - !BOOST_WORKAROUND(__GNUC__, < 3) \ - /**/ -namespace range_detail -{ -#endif - - ////////////////////////////////////////////////////////////////////// - // primary template - ////////////////////////////////////////////////////////////////////// - template< typename C > - inline BOOST_DEDUCED_TYPENAME range_iterator::type - range_end( C& c ) - { - // - // If you get a compile-error here, it is most likely because - // you have not implemented range_begin() properly in - // the namespace of C - // - return c.end(); - } - - ////////////////////////////////////////////////////////////////////// - // pair - ////////////////////////////////////////////////////////////////////// - - template< typename Iterator > - inline Iterator range_end( const std::pair& p ) - { - return p.second; - } - - template< typename Iterator > - inline Iterator range_end( std::pair& p ) - { - return p.second; - } - - ////////////////////////////////////////////////////////////////////// - // array - ////////////////////////////////////////////////////////////////////// - - template< typename T, std::size_t sz > - inline const T* range_end( const T (&a)[sz] ) - { - return range_detail::array_end( a ); - } - - template< typename T, std::size_t sz > - inline T* range_end( T (&a)[sz] ) - { - return range_detail::array_end( a ); - } - -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \ - !BOOST_WORKAROUND(__GNUC__, < 3) \ - /**/ -} // namespace 'range_detail' -#endif - -template< class T > -inline BOOST_DEDUCED_TYPENAME range_iterator::type end( T& r ) -{ -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \ - !BOOST_WORKAROUND(__GNUC__, < 3) \ - /**/ - using namespace range_detail; -#endif - return range_end( r ); -} - -template< class T > -inline BOOST_DEDUCED_TYPENAME range_iterator::type end( const T& r ) -{ -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \ - !BOOST_WORKAROUND(__GNUC__, < 3) \ - /**/ - using namespace range_detail; -#endif - return range_end( r ); -} - -} // namespace 'boost' - - - -#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - -namespace boost -{ - template< class T > - inline BOOST_DEDUCED_TYPENAME range_iterator::type - const_end( const T& r ) - { - return boost::end( r ); - } -} - -#endif - diff --git a/boost/boost/range/functions.hpp b/boost/boost/range/functions.hpp deleted file mode 100644 index b8b8608b86..0000000000 --- a/boost/boost/range/functions.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2006. 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_FUNCTIONS_HPP -#define BOOST_RANGE_FUNCTIONS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif - -#include -#include -#include -#include -#include -#include -#include - -#endif - diff --git a/boost/boost/range/iterator.hpp b/boost/boost/range/iterator.hpp deleted file mode 100644 index 21798c54de..0000000000 --- a/boost/boost/range/iterator.hpp +++ /dev/null @@ -1,72 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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_ITERATOR_HPP -#define BOOST_RANGE_ITERATOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - -#if BOOST_WORKAROUND(BOOST_MSVC, == 1310) - - namespace range_detail_vc7_1 - { - template< typename C, typename Sig = void(C) > - struct range_iterator - { - typedef BOOST_RANGE_DEDUCED_TYPENAME - mpl::eval_if_c< is_const::value, - range_const_iterator< typename remove_const::type >, - range_mutable_iterator >::type type; - }; - - template< typename C, typename T > - struct range_iterator< C, void(T[]) > - { - typedef T* type; - }; - } - -#endif - - template< typename C > - struct range_iterator - { -#if BOOST_WORKAROUND(BOOST_MSVC, == 1310) - - typedef BOOST_RANGE_DEDUCED_TYPENAME - range_detail_vc7_1::range_iterator::type type; - -#else - - typedef BOOST_RANGE_DEDUCED_TYPENAME - mpl::eval_if_c< is_const::value, - range_const_iterator< typename remove_const::type >, - range_mutable_iterator >::type type; - -#endif - }; - -} // namespace boost - -//#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -#endif diff --git a/boost/boost/range/iterator_range.hpp b/boost/boost/range/iterator_range.hpp deleted file mode 100644 index d118224628..0000000000 --- a/boost/boost/range/iterator_range.hpp +++ /dev/null @@ -1,659 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen & Pavol Droba 2003-2004. 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_ITERATOR_RANGE_HPP -#define BOOST_RANGE_ITERATOR_RANGE_HPP - -#include // Define __STL_CONFIG_H, if appropriate. -#include - -#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1500)) - #pragma warning( push ) - #pragma warning( disable : 4996 ) -#endif - -// From boost/dynamic_bitset.hpp; thanks to Matthias Troyer for Cray X1 patch. -#ifndef BOOST_OLD_IOSTREAMS -# if defined(__STL_CONFIG_H) && \ - !defined (__STL_USE_NEW_IOSTREAMS) && !defined(__crayx1) \ - /**/ -# define BOOST_OLD_IOSTREAMS -# endif -#endif // #ifndef BOOST_OLD_IOSTREAMS - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#ifndef _STLP_NO_IOSTREAMS -# ifndef BOOST_OLD_IOSTREAMS -# include -# else -# include -# endif -#endif // _STLP_NO_IOSTREAMS -#include - -/*! \file - Defines the \c iterator_class and related functions. - \c iterator_range is a simple wrapper of iterator pair idiom. It provides - a rich subset of Container interface. -*/ - - -namespace boost -{ - namespace iterator_range_detail - { - // - // The functions adl_begin and adl_end are implemented in a separate - // class for gcc-2.9x - // - template - struct iterator_range_impl { - template< class ForwardRange > - static IteratorT adl_begin( ForwardRange& r ) - { - return IteratorT( boost::begin( r ) ); - } - - template< class ForwardRange > - static IteratorT adl_end( ForwardRange& r ) - { - return IteratorT( boost::end( r ) ); - } - }; - - template< class Left, class Right > - inline bool equal( const Left& l, const Right& r ) - { - typedef BOOST_DEDUCED_TYPENAME boost::range_difference::type sz_type; - - sz_type l_size = boost::distance( l ), - r_size = boost::distance( r ); - - if( l_size != r_size ) - return false; - - return std::equal( boost::begin(l), boost::end(l), - boost::begin(r) ); - } - - template< class Left, class Right > - inline bool less_than( const Left& l, const Right& r ) - { - return std::lexicographical_compare( boost::begin(l), - boost::end(l), - boost::begin(r), - boost::end(r) ); - } - - struct range_tag { }; - struct const_range_tag { }; - - } - -// iterator range template class -----------------------------------------// - - //! iterator_range class - /*! - An \c iterator_range delimits a range in a sequence by beginning and ending iterators. - An iterator_range can be passed to an algorithm which requires a sequence as an input. - For example, the \c toupper() function may be used most frequently on strings, - but can also be used on iterator_ranges: - - \code - boost::tolower( find( s, "UPPERCASE STRING" ) ); - \endcode - - Many algorithms working with sequences take a pair of iterators, - delimiting a working range, as an arguments. The \c iterator_range class is an - encapsulation of a range identified by a pair of iterators. - It provides a collection interface, - so it is possible to pass an instance to an algorithm requiring a collection as an input. - */ - template - class iterator_range - { - protected: // Used by sub_range - //! implementation class - typedef iterator_range_detail::iterator_range_impl impl; - public: - - //! this type - typedef iterator_range type; - //BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(value_type); - - //! Encapsulated value type - typedef BOOST_DEDUCED_TYPENAME - iterator_value::type value_type; - - //! Difference type - typedef BOOST_DEDUCED_TYPENAME - iterator_difference::type difference_type; - - //! Size type - typedef std::size_t size_type; // note: must be unsigned - - //! This type - typedef iterator_range this_type; - - //! Refence type - // - // Needed because value-type is the same for - // const and non-const iterators - // - typedef BOOST_DEDUCED_TYPENAME - iterator_reference::type reference; - - //! const_iterator type - /*! - There is no distinction between const_iterator and iterator. - These typedefs are provides to fulfill container interface - */ - typedef IteratorT const_iterator; - //! iterator type - typedef IteratorT iterator; - - private: // for return value of operator()() - typedef BOOST_DEDUCED_TYPENAME - boost::mpl::if_< boost::is_abstract, - reference, value_type >::type abstract_value_type; - - public: - iterator_range() : m_Begin( iterator() ), m_End( iterator() ) - #ifndef NDEBUG - , singular( true ) - #endif - { } - - //! Constructor from a pair of iterators - template< class Iterator > - iterator_range( Iterator Begin, Iterator End ) : - m_Begin(Begin), m_End(End) - #ifndef NDEBUG - , singular(false) - #endif - {} - - //! Constructor from a Range - template< class Range > - iterator_range( const Range& r ) : - m_Begin( impl::adl_begin( r ) ), m_End( impl::adl_end( r ) ) - #ifndef NDEBUG - , singular(false) - #endif - {} - - //! Constructor from a Range - template< class Range > - iterator_range( Range& r ) : - m_Begin( impl::adl_begin( r ) ), m_End( impl::adl_end( r ) ) - #ifndef NDEBUG - , singular(false) - #endif - {} - - //! Constructor from a Range - template< class Range > - iterator_range( const Range& r, iterator_range_detail::const_range_tag ) : - m_Begin( impl::adl_begin( r ) ), m_End( impl::adl_end( r ) ) - #ifndef NDEBUG - , singular(false) - #endif - {} - - //! Constructor from a Range - template< class Range > - iterator_range( Range& r, iterator_range_detail::range_tag ) : - m_Begin( impl::adl_begin( r ) ), m_End( impl::adl_end( r ) ) - #ifndef NDEBUG - , singular(false) - #endif - {} - - #if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) - this_type& operator=( const this_type& r ) - { - m_Begin = r.begin(); - m_End = r.end(); - - #ifndef NDEBUG - singular = r.singular; - #endif - return *this; - } - #endif - - template< class Iterator > - iterator_range& operator=( const iterator_range& r ) - { - m_Begin = r.begin(); - m_End = r.end(); - #ifndef NDEBUG - singular = r.is_singular(); - #endif - return *this; - } - - template< class ForwardRange > - iterator_range& operator=( ForwardRange& r ) - { - m_Begin = impl::adl_begin( r ); - m_End = impl::adl_end( r ); - #ifndef NDEBUG - singular = false; - #endif - return *this; - } - - template< class ForwardRange > - iterator_range& operator=( const ForwardRange& r ) - { - m_Begin = impl::adl_begin( r ); - m_End = impl::adl_end( r ); - #ifndef NDEBUG - singular = false; - #endif - return *this; - } - - IteratorT begin() const - { - BOOST_ASSERT( !is_singular() ); - return m_Begin; - } - - IteratorT end() const - { - BOOST_ASSERT( !is_singular() ); - return m_End; - } - - difference_type size() const - { - BOOST_ASSERT( !is_singular() ); - return m_End - m_Begin; - } - - bool empty() const - { - BOOST_ASSERT( !is_singular() ); - return m_Begin == m_End; - } - -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) - operator bool() const - { - return !empty(); - } -#else - typedef iterator (iterator_range::*unspecified_bool_type) () const; - operator unspecified_bool_type() const - { - return empty() ? 0: &iterator_range::end; - } -#endif - - bool equal( const iterator_range& r ) const - { - BOOST_ASSERT( !is_singular() ); - return m_Begin == r.m_Begin && m_End == r.m_End; - } - - -#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - bool operator==( const iterator_range& r ) const - { - BOOST_ASSERT( !is_singular() ); - return iterator_range_detail::equal( *this, r ); - } - - bool operator!=( const iterator_range& r ) const - { - BOOST_ASSERT( !is_singular() ); - return !operator==(r); - } - - bool operator<( const iterator_range& r ) const - { - BOOST_ASSERT( !is_singular() ); - return iterator_range_detail::less_than( *this, r ); - } - -#endif - - public: // convenience - reference front() const - { - BOOST_ASSERT( !empty() ); - return *m_Begin; - } - - reference back() const - { - BOOST_ASSERT( !empty() ); - IteratorT last( m_End ); - return *--last; - } - - reference operator[]( difference_type at ) const - { - BOOST_ASSERT( at >= 0 && at < size() ); - return m_Begin[at]; - } - - // - // When storing transform iterators, operator[]() - // fails because it returns by reference. Therefore - // operator()() is provided for these cases. - // - abstract_value_type operator()( difference_type at ) const - { - BOOST_ASSERT( at >= 0 && at < size() ); - return m_Begin[at]; - } - - iterator_range& advance_begin( difference_type n ) - { - BOOST_ASSERT( !is_singular() ); - std::advance( m_Begin, n ); - return *this; - } - - iterator_range& advance_end( difference_type n ) - { - BOOST_ASSERT( !is_singular() ); - std::advance( m_End, n ); - return *this; - } - - private: - // begin and end iterators - IteratorT m_Begin; - IteratorT m_End; - - #ifndef NDEBUG - bool singular; - #endif - - public: - bool is_singular() const - { - #ifndef NDEBUG - return singular; - #else - return false; - #endif - } - - protected: - // - // Allow subclasses an easy way to access the - // base type - // - typedef iterator_range iterator_range_; - }; - -// iterator range free-standing operators ---------------------------// - -#ifndef _STLP_NO_IOSTREAMS -# ifndef BOOST_OLD_IOSTREAMS - - //! iterator_range output operator - /*! - Output the range to an ostream. Elements are outputed - in a sequence without separators. - */ - template< typename IteratorT, typename Elem, typename Traits > - inline std::basic_ostream& operator<<( - std::basic_ostream& Os, - const iterator_range& r ) - { - std::copy( r.begin(), r.end(), - std::ostream_iterator< BOOST_DEDUCED_TYPENAME - iterator_value::type, - Elem, Traits>(Os) ); - return Os; - } - -# else - - //! iterator_range output operator - /*! - Output the range to an ostream. Elements are outputed - in a sequence without separators. - */ - template< typename IteratorT > - inline std::ostream& operator<<( - std::ostream& Os, - const iterator_range& r ) - { - std::copy( r.begin(), r.end(), std::ostream_iterator(Os)); - return Os; - } - -# endif -#endif // _STLP_NO_IOSTREAMS - - ///////////////////////////////////////////////////////////////////// - // comparison operators - ///////////////////////////////////////////////////////////////////// - - template< class IteratorT, class ForwardRange > - inline bool operator==( const ForwardRange& l, - const iterator_range& r ) - { - return iterator_range_detail::equal( l, r ); - } - - template< class IteratorT, class ForwardRange > - inline bool operator!=( const ForwardRange& l, - const iterator_range& r ) - { - return !iterator_range_detail::equal( l, r ); - } - - template< class IteratorT, class ForwardRange > - inline bool operator<( const ForwardRange& l, - const iterator_range& r ) - { - return iterator_range_detail::less_than( l, r ); - } - -#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING -#else - template< class Iterator1T, class Iterator2T > - inline bool operator==( const iterator_range& l, - const iterator_range& r ) - { - return iterator_range_detail::equal( l, r ); - } - - template< class IteratorT, class ForwardRange > - inline bool operator==( const iterator_range& l, - const ForwardRange& r ) - { - return iterator_range_detail::equal( l, r ); - } - - - template< class Iterator1T, class Iterator2T > - inline bool operator!=( const iterator_range& l, - const iterator_range& r ) - { - return !iterator_range_detail::equal( l, r ); - } - - template< class IteratorT, class ForwardRange > - inline bool operator!=( const iterator_range& l, - const ForwardRange& r ) - { - return !iterator_range_detail::equal( l, r ); - } - - - template< class Iterator1T, class Iterator2T > - inline bool operator<( const iterator_range& l, - const iterator_range& r ) - { - return iterator_range_detail::less_than( l, r ); - } - - template< class IteratorT, class ForwardRange > - inline bool operator<( const iterator_range& l, - const ForwardRange& r ) - { - return iterator_range_detail::less_than( l, r ); - } - -#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - -// iterator range utilities -----------------------------------------// - - //! iterator_range construct helper - /*! - Construct an \c iterator_range from a pair of iterators - - \param Begin A begin iterator - \param End An end iterator - \return iterator_range object - */ - template< typename IteratorT > - inline iterator_range< IteratorT > - make_iterator_range( IteratorT Begin, IteratorT End ) - { - return iterator_range( Begin, End ); - } - -#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - template< typename Range > - inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > - make_iterator_range( Range& r ) - { - return iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > - ( boost::begin( r ), boost::end( r ) ); - } - -#else - //! iterator_range construct helper - /*! - Construct an \c iterator_range from a \c Range containing the begin - and end iterators. - */ - template< class ForwardRange > - inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > - make_iterator_range( ForwardRange& r ) - { - return iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > - ( r, iterator_range_detail::range_tag() ); - } - - template< class ForwardRange > - inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > - make_iterator_range( const ForwardRange& r ) - { - return iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > - ( r, iterator_range_detail::const_range_tag() ); - } - -#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - namespace iterator_range_detail - { - template< class Range > - inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > - make_range_impl( Range& r, - BOOST_DEDUCED_TYPENAME range_difference::type advance_begin, - BOOST_DEDUCED_TYPENAME range_difference::type advance_end ) - { - // - // Not worth the effort - // - //if( advance_begin == 0 && advance_end == 0 ) - // return make_iterator_range( r ); - // - - BOOST_DEDUCED_TYPENAME range_iterator::type - new_begin = boost::begin( r ), - new_end = boost::end( r ); - std::advance( new_begin, advance_begin ); - std::advance( new_end, advance_end ); - return make_iterator_range( new_begin, new_end ); - } - } - -#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - template< class Range > - inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > - make_iterator_range( Range& r, - BOOST_DEDUCED_TYPENAME range_difference::type advance_begin, - BOOST_DEDUCED_TYPENAME range_difference::type advance_end ) - { - //BOOST_ASSERT( advance_begin - advance_end <= size(r) && "creating invalid range" ); - return iterator_range_detail::make_range_impl( r, advance_begin, advance_end ); - } - -#else - - template< class Range > - inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > - make_iterator_range( Range& r, - BOOST_DEDUCED_TYPENAME range_difference::type advance_begin, - BOOST_DEDUCED_TYPENAME range_difference::type advance_end ) - { - //BOOST_ASSERT( advance_begin - advance_end <= size(r) && "creating invalid range" ); - return iterator_range_detail::make_range_impl( r, advance_begin, advance_end ); - } - - template< class Range > - inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator::type > - make_iterator_range( const Range& r, - BOOST_DEDUCED_TYPENAME range_difference::type advance_begin, - BOOST_DEDUCED_TYPENAME range_difference::type advance_end ) - { - //BOOST_ASSERT( advance_begin - advance_end <= size(r) && "creating invalid range" ); - return iterator_range_detail::make_range_impl( r, advance_begin, advance_end ); - } - -#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - //! copy a range into a sequence - /*! - Construct a new sequence of the specified type from the elements - in the given range - - \param Range An input range - \return New sequence - */ - template< typename SeqT, typename Range > - inline SeqT copy_range( const Range& r ) - { - return SeqT( boost::begin( r ), boost::end( r ) ); - } - -} // namespace 'boost' - -#undef BOOST_OLD_IOSTREAMS - -#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1500)) - #pragma warning( pop ) -#endif - -#endif - diff --git a/boost/boost/range/rbegin.hpp b/boost/boost/range/rbegin.hpp deleted file mode 100644 index 78e5f61ab7..0000000000 --- a/boost/boost/range/rbegin.hpp +++ /dev/null @@ -1,65 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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_RBEGIN_HPP -#define BOOST_RANGE_RBEGIN_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif - -#include -#include - -namespace boost -{ - -#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING - -template< class C > -inline BOOST_DEDUCED_TYPENAME range_reverse_iterator::type -rbegin( C& c ) -{ - return BOOST_DEDUCED_TYPENAME range_reverse_iterator::type( boost::end( c ) ); -} - -#else - -template< class C > -inline BOOST_DEDUCED_TYPENAME range_reverse_iterator::type -rbegin( C& c ) -{ - typedef BOOST_DEDUCED_TYPENAME range_reverse_iterator::type - iter_type; - return iter_type( boost::end( c ) ); -} - -template< class C > -inline BOOST_DEDUCED_TYPENAME range_reverse_iterator::type -rbegin( const C& c ) -{ - typedef BOOST_DEDUCED_TYPENAME range_reverse_iterator::type - iter_type; - return iter_type( boost::end( c ) ); -} - -#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - -template< class T > -inline BOOST_DEDUCED_TYPENAME range_reverse_iterator::type -const_rbegin( const T& r ) -{ - return boost::rbegin( r ); -} - -} // namespace 'boost' - -#endif - diff --git a/boost/boost/range/rend.hpp b/boost/boost/range/rend.hpp deleted file mode 100644 index fd79aa22c3..0000000000 --- a/boost/boost/range/rend.hpp +++ /dev/null @@ -1,65 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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_REND_HPP -#define BOOST_RANGE_REND_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif - -#include -#include - -namespace boost -{ - -#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING - -template< class C > -inline BOOST_DEDUCED_TYPENAME range_reverse_iterator::type -rend( C& c ) -{ - return BOOST_DEDUCED_TYPENAME range_reverse_iterator::type( boost::begin( c ) ); -} - -#else - -template< class C > -inline BOOST_DEDUCED_TYPENAME range_reverse_iterator::type -rend( C& c ) -{ - typedef BOOST_DEDUCED_TYPENAME range_reverse_iterator::type - iter_type; - return iter_type( boost::begin( c ) ); -} - -template< class C > -inline BOOST_DEDUCED_TYPENAME range_reverse_iterator::type -rend( const C& c ) -{ - typedef BOOST_DEDUCED_TYPENAME range_reverse_iterator::type - iter_type; - return iter_type( boost::begin( c ) ); -} - -#endif - -template< class T > -inline BOOST_DEDUCED_TYPENAME range_reverse_iterator::type -const_rend( const T& r ) -{ - return boost::rend( r ); -} - -} // namespace 'boost' - -#endif - diff --git a/boost/boost/range/result_iterator.hpp b/boost/boost/range/result_iterator.hpp deleted file mode 100644 index ba09c5fed4..0000000000 --- a/boost/boost/range/result_iterator.hpp +++ /dev/null @@ -1,33 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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_RESULT_ITERATOR_HPP -#define BOOST_RANGE_RESULT_ITERATOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -#include - -namespace boost -{ - // - // This interface is deprecated, use range_iterator - // - - template< typename C > - struct range_result_iterator : range_iterator - { }; - -} // namespace boost - - -#endif diff --git a/boost/boost/range/reverse_iterator.hpp b/boost/boost/range/reverse_iterator.hpp deleted file mode 100644 index f8e922175a..0000000000 --- a/boost/boost/range/reverse_iterator.hpp +++ /dev/null @@ -1,40 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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_REVERSE_ITERATOR_HPP -#define BOOST_RANGE_REVERSE_ITERATOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif - -#include -#include -#include - - -namespace boost -{ - ////////////////////////////////////////////////////////////////////////// - // default - ////////////////////////////////////////////////////////////////////////// - - template< typename C > - struct range_reverse_iterator - { - typedef reverse_iterator< - BOOST_DEDUCED_TYPENAME range_iterator::type > type; - }; - - -} // namespace boost - - -#endif diff --git a/boost/boost/range/reverse_result_iterator.hpp b/boost/boost/range/reverse_result_iterator.hpp deleted file mode 100644 index 62bf135a49..0000000000 --- a/boost/boost/range/reverse_result_iterator.hpp +++ /dev/null @@ -1,32 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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_REVERSE_RESULT_ITERATOR_HPP -#define BOOST_RANGE_REVERSE_RESULT_ITERATOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -#include - -namespace boost -{ - // - // This interface is deprecated, use range_reverse_iterator - // - - template< typename C > - struct range_reverse_result_iterator : range_reverse_iterator - { }; - -} // namespace boost - -#endif diff --git a/boost/boost/range/size.hpp b/boost/boost/range/size.hpp deleted file mode 100644 index 311a69210b..0000000000 --- a/boost/boost/range/size.hpp +++ /dev/null @@ -1,36 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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_SIZE_HPP -#define BOOST_RANGE_SIZE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif - -#include -#include -#include -#include - -namespace boost -{ - - template< class T > - inline BOOST_DEDUCED_TYPENAME range_difference::type size( const T& r ) - { - BOOST_ASSERT( (boost::end( r ) - boost::begin( r )) >= 0 && - "reachability invariant broken!" ); - return boost::end( r ) - boost::begin( r ); - } - -} // namespace 'boost' - -#endif diff --git a/boost/boost/range/size_type.hpp b/boost/boost/range/size_type.hpp deleted file mode 100644 index 7ed8dfa870..0000000000 --- a/boost/boost/range/size_type.hpp +++ /dev/null @@ -1,78 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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_SIZE_TYPE_HPP -#define BOOST_RANGE_SIZE_TYPE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -#include - -#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -#include -#else - -#include -#include -#include - -namespace boost -{ - namespace detail - { - - ////////////////////////////////////////////////////////////////////////// - // default - ////////////////////////////////////////////////////////////////////////// - - template< typename C > - struct range_size - { - typedef BOOST_DEDUCED_TYPENAME C::size_type type; - }; - - ////////////////////////////////////////////////////////////////////////// - // pair - ////////////////////////////////////////////////////////////////////////// - - template< typename Iterator > - struct range_size< std::pair > - { - typedef std::size_t type; - }; - - ////////////////////////////////////////////////////////////////////////// - // array - ////////////////////////////////////////////////////////////////////////// - - template< typename T, std::size_t sz > - struct range_size< T[sz] > - { - typedef std::size_t type; - }; - } - - template< class T > - struct range_size : - detail::range_size - { }; - - template< class T > - struct range_size : range_size - { }; - -} // namespace boost - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - - -#endif diff --git a/boost/boost/range/value_type.hpp b/boost/boost/range/value_type.hpp deleted file mode 100644 index 95c7580885..0000000000 --- a/boost/boost/range/value_type.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// Boost.Range library -// -// Copyright Thorsten Ottosen 2003-2004. 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_VALUE_TYPE_HPP -#define BOOST_RANGE_VALUE_TYPE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif - -#include -#include - -//#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -//#include -//#else - -#include - -namespace boost -{ - template< class T > - struct range_value : iterator_value< typename range_iterator::type > - { }; -} - -#endif diff --git a/boost/boost/test/detail/enable_warnings.hpp b/boost/boost/test/detail/enable_warnings.hpp deleted file mode 100644 index e54a840382..0000000000 --- a/boost/boost/test/detail/enable_warnings.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// (C) Copyright Gennadiy Rozental 2004-2007. -// 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) - -// See http://www.boost.org/libs/test for the library home page. -// -// File : $RCSfile$ -// -// Version : $Revision: 41369 $ -// -// Description : enable previosly suppressed warnings -// *************************************************************************** - -#ifdef BOOST_MSVC -# pragma warning(default: 4511) // copy constructor could not be generated -# pragma warning(default: 4512) // assignment operator could not be generated -# pragma warning(default: 4100) // unreferenced formal parameter -# pragma warning(default: 4996) // was declared deprecated -# pragma warning(default: 4355) // 'this' : used in base member initializer list -# pragma warning(default: 4706) // assignment within conditional expression -# pragma warning(default: 4251) // class 'A' needs to have dll-interface to be used by clients of class 'B' -# pragma warning(default: 4127) // conditional expression is constant -# pragma warning(default: 4290) // C++ exception specification ignored except to ... -# pragma warning(default: 4180) // qualifier applied to function type has no meaning; ignored -# pragma warning(pop) -#endif diff --git a/boost/boost/test/detail/suppress_warnings.hpp b/boost/boost/test/detail/suppress_warnings.hpp deleted file mode 100644 index 6c893b3206..0000000000 --- a/boost/boost/test/detail/suppress_warnings.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// (C) Copyright Gennadiy Rozental 2004-2007. -// 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) - -// See http://www.boost.org/libs/test for the library home page. -// -// File : $RCSfile$ -// -// Version : $Revision: 41369 $ -// -// Description : suppress some warnings -// *************************************************************************** - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable: 4511) // copy constructor could not be generated -# pragma warning(disable: 4512) // assignment operator could not be generated -# pragma warning(disable: 4100) // unreferenced formal parameter -# pragma warning(disable: 4996) // was declared deprecated -# pragma warning(disable: 4355) // 'this' : used in base member initializer list -# pragma warning(disable: 4706) // assignment within conditional expression -# pragma warning(disable: 4251) // class 'A' needs to have dll-interface to be used by clients of class 'B' -# pragma warning(disable: 4127) // conditional expression is constant -# pragma warning(disable: 4290) // C++ exception specification ignored except to ... -# pragma warning(disable: 4180) // qualifier applied to function type has no meaning; ignored -#endif - diff --git a/boost/boost/test/utils/nullstream.hpp b/boost/boost/test/utils/nullstream.hpp deleted file mode 100644 index decfd896e0..0000000000 --- a/boost/boost/test/utils/nullstream.hpp +++ /dev/null @@ -1,100 +0,0 @@ -// (C) Copyright Gennadiy Rozental 2002-2007. -// (C) Copyright Daryle Walker 2000-2001. -// 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) - -// See http://www.boost.org/libs/test for the library home page. -// -// File : $RCSfile$ -// -// Version : $Revision: 41369 $ -// -// Description : simulate /dev/null stream -// *************************************************************************** - -#ifndef BOOST_NULLSTREAM_HPP_071894GER -#define BOOST_NULLSTREAM_HPP_071894GER - -#include // for std::basic_ostream -#include // for std::basic_streambuf -#include // for std::char_traits - -#include - -#include - -//____________________________________________________________________________// - -namespace boost { - -// ************************************************************************** // -// ************** basic_nullbuf ************** // -// ************************************************************************** // -// Class for a buffer that reads nothing and writes to nothing. -// Idea from an Usenet post by Tom at -// 27 Oct 2000 14:06:21 GMT on comp.lang.c++. - -template > -class basic_nullbuf : public ::std::basic_streambuf { - typedef ::std::basic_streambuf base_type; -public: - // Types - typedef typename base_type::char_type char_type; - typedef typename base_type::traits_type traits_type; - typedef typename base_type::int_type int_type; - typedef typename base_type::pos_type pos_type; - typedef typename base_type::off_type off_type; - - // Use automatic default constructor and destructor - -protected: - // The default implementations of the miscellaneous virtual - // member functions are sufficient. - - // The default implementations of the input & putback virtual - // member functions, being nowhere but EOF, are sufficient. - - // The output virtual member functions need to be changed to - // accept anything without any problems, instead of being at EOF. - virtual ::std::streamsize xsputn( char_type const* /*s*/, ::std::streamsize n ) { return n; } // "s" is unused - virtual int_type overflow( int_type c = traits_type::eof() ) { return traits_type::not_eof( c ); } -}; - -typedef basic_nullbuf nullbuf; -typedef basic_nullbuf wnullbuf; - -// ************************************************************************** // -// ************** basic_onullstream ************** // -// ************************************************************************** // -// Output streams based on basic_nullbuf. - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable: 4355) // 'this' : used in base member initializer list -#endif - -template< typename CharType, class CharTraits = ::std::char_traits > -class basic_onullstream : private boost::base_from_member > - , public ::std::basic_ostream { - typedef boost::base_from_member > pbase_type; - typedef ::std::basic_ostream base_type; -public: - // Constructor - basic_onullstream() : pbase_type(), base_type( &this->pbase_type::member ) {} -}; - -#ifdef BOOST_MSVC -# pragma warning(default: 4355) -#endif - -typedef basic_onullstream onullstream; -typedef basic_onullstream wonullstream; - -} // namespace boost - -//____________________________________________________________________________// - -#include - -#endif // BOOST_NULLSTREAM_HPP_071894GER -- 2.39.2