Includes: Updated detail/xxx.hpp includes to core/xxx.hpp, added some missing move/traits.hpp and removed some unused ones.

This commit is contained in:
Ion Gaztañaga
2014-09-17 21:49:47 +02:00
parent 2e009da1e8
commit f213f55f20
32 changed files with 134 additions and 78 deletions

View File

@@ -74,6 +74,9 @@ class MyInt
}; };
namespace boost{ namespace boost{
template<class T>
struct has_trivial_destructor_after_move;
template<> template<>
struct has_trivial_destructor_after_move<MyInt> struct has_trivial_destructor_after_move<MyInt>
{ {

View File

@@ -2,6 +2,7 @@
// //
// Copyright (c) 2012-2013 Adam Wulkiewicz, Lodz, Poland. // Copyright (c) 2012-2013 Adam Wulkiewicz, Lodz, Poland.
// Copyright (c) 2011-2013 Andrew Hundt. // Copyright (c) 2011-2013 Andrew Hundt.
// Copyright (c) 2014-2014 Ion Gaztanaga
// //
// Use, modification and distribution is subject to the Boost Software License, // Use, modification and distribution is subject to the Boost Software License,
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -19,8 +20,6 @@
#include <boost/container/detail/preprocessor.hpp> #include <boost/container/detail/preprocessor.hpp>
#include "varray_util.hpp" #include "varray_util.hpp"
//#include "varray_concept.hpp"
//#include <boost/iterator/iterator_concepts.hpp>
#ifndef BOOST_NO_EXCEPTIONS #ifndef BOOST_NO_EXCEPTIONS
#include <stdexcept> #include <stdexcept>
@@ -37,10 +36,7 @@
#include <boost/type_traits/alignment_of.hpp> #include <boost/type_traits/alignment_of.hpp>
#include <boost/type_traits/aligned_storage.hpp> #include <boost/type_traits/aligned_storage.hpp>
// TODO - use std::reverse_iterator and std::iterator_traits #include <iterator>
// instead Boost.Iterator to remove dependency?
// or boost/detail/iterator.hpp ?
#include <boost/iterator/reverse_iterator.hpp>
/** /**
* @defgroup varray_non_member varray non-member functions * @defgroup varray_non_member varray non-member functions
@@ -229,8 +225,6 @@ class varray
(varray) (varray)
); );
//BOOST_CONCEPT_ASSERT((concept::VArrayStrategy<Strategy>));
typedef boost::aligned_storage< typedef boost::aligned_storage<
sizeof(Value[Capacity]), sizeof(Value[Capacity]),
boost::alignment_of<Value[Capacity]>::value boost::alignment_of<Value[Capacity]>::value
@@ -273,9 +267,9 @@ public:
//! @brief The const iterator type. //! @brief The const iterator type.
typedef const_pointer const_iterator; typedef const_pointer const_iterator;
//! @brief The reverse iterator type. //! @brief The reverse iterator type.
typedef boost::reverse_iterator<iterator> reverse_iterator; typedef std::reverse_iterator<iterator> reverse_iterator;
//! @brief The const reverse iterator. //! @brief The const reverse iterator.
typedef boost::reverse_iterator<const_iterator> const_reverse_iterator; typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
//! @brief The type of a strategy used by the varray. //! @brief The type of a strategy used by the varray.
typedef Strategy strategy_type; typedef Strategy strategy_type;
@@ -334,7 +328,7 @@ public:
//! @pre //! @pre
//! @li <tt>distance(first, last) <= capacity()</tt> //! @li <tt>distance(first, last) <= capacity()</tt>
//! @li Iterator must meet the \c ForwardTraversalIterator concept. //! @li Iterator must meet the \c ForwardIterator.
//! //!
//! @brief Constructs a varray containing copy of a range <tt>[first, last)</tt>. //! @brief Constructs a varray containing copy of a range <tt>[first, last)</tt>.
//! //!
@@ -353,8 +347,6 @@ public:
varray(Iterator first, Iterator last) varray(Iterator first, Iterator last)
: m_size(0) : m_size(0)
{ {
//BOOST_CONCEPT_ASSERT((boost_concepts::ForwardTraversal<Iterator>)); // Make sure you passed a ForwardIterator
this->assign(first, last); // may throw this->assign(first, last); // may throw
} }
@@ -870,7 +862,7 @@ public:
//! @pre //! @pre
//! @li \c position must be a valid iterator of \c *this in range <tt>[begin(), end()]</tt>. //! @li \c position must be a valid iterator of \c *this in range <tt>[begin(), end()]</tt>.
//! @li <tt>distance(first, last) <= capacity()</tt> //! @li <tt>distance(first, last) <= capacity()</tt>
//! @li \c Iterator must meet the \c ForwardTraversalIterator concept. //! @li \c Iterator must meet the \c ForwardIterator.
//! //!
//! @brief Inserts a copy of a range <tt>[first, last)</tt> at position. //! @brief Inserts a copy of a range <tt>[first, last)</tt> at position.
//! //!
@@ -890,10 +882,8 @@ public:
template <typename Iterator> template <typename Iterator>
iterator insert(iterator position, Iterator first, Iterator last) iterator insert(iterator position, Iterator first, Iterator last)
{ {
//BOOST_CONCEPT_ASSERT((boost_concepts::ForwardTraversal<Iterator>)); // Make sure you passed a ForwardIterator typedef typename std::iterator_traits<Iterator>::iterator_category category;
this->insert_dispatch(position, first, last, category());
typedef typename boost::iterator_traversal<Iterator>::type traversal;
this->insert_dispatch(position, first, last, traversal());
return position; return position;
} }
@@ -975,10 +965,8 @@ public:
template <typename Iterator> template <typename Iterator>
void assign(Iterator first, Iterator last) void assign(Iterator first, Iterator last)
{ {
//BOOST_CONCEPT_ASSERT((boost_concepts::ForwardTraversal<Iterator>)); // Make sure you passed a ForwardIterator typedef typename std::iterator_traits<Iterator>::iterator_category category;
this->assign_dispatch(first, last, category()); // may throw
typedef typename boost::iterator_traversal<Iterator>::type traversal;
this->assign_dispatch(first, last, traversal()); // may throw
} }
//! @pre <tt>count <= capacity()</tt> //! @pre <tt>count <= capacity()</tt>
@@ -1726,10 +1714,8 @@ private:
// @par Complexity // @par Complexity
// Linear O(N). // Linear O(N).
template <typename Iterator> template <typename Iterator>
void insert_dispatch(iterator position, Iterator first, Iterator last, boost::random_access_traversal_tag const&) void insert_dispatch(iterator position, Iterator first, Iterator last, std::random_access_iterator_tag)
{ {
//BOOST_CONCEPT_ASSERT((boost_concepts::RandomAccessTraversal<Iterator>)); // Make sure you passed a RandomAccessIterator
errh::check_iterator_end_eq(*this, position); errh::check_iterator_end_eq(*this, position);
typename boost::iterator_difference<Iterator>::type typename boost::iterator_difference<Iterator>::type
@@ -1755,8 +1741,8 @@ private:
// or if Value's copy constructor or copy assignment throws. // or if Value's copy constructor or copy assignment throws.
// @par Complexity // @par Complexity
// Linear O(N). // Linear O(N).
template <typename Iterator, typename Traversal> template <typename Iterator, typename Category>
void insert_dispatch(iterator position, Iterator first, Iterator last, Traversal const& /*not_random_access*/) void insert_dispatch(iterator position, Iterator first, Iterator last, Category const& /*not_random_access*/)
{ {
errh::check_iterator_end_eq(*this, position); errh::check_iterator_end_eq(*this, position);
@@ -1823,7 +1809,7 @@ private:
// @par Complexity // @par Complexity
// Linear O(N). // Linear O(N).
template <typename Iterator> template <typename Iterator>
void assign_dispatch(Iterator first, Iterator last, boost::random_access_traversal_tag const& /*not_random_access*/) void assign_dispatch(Iterator first, Iterator last, std::random_access_iterator_tag const& /*not_random_access*/)
{ {
namespace sv = varray_detail; namespace sv = varray_detail;
@@ -1850,8 +1836,8 @@ private:
// If Value's constructor or assignment taking dereferenced Iterator throws. // If Value's constructor or assignment taking dereferenced Iterator throws.
// @par Complexity // @par Complexity
// Linear O(N). // Linear O(N).
template <typename Iterator, typename Traversal> template <typename Iterator, typename Category>
void assign_dispatch(Iterator first, Iterator last, Traversal const& /*not_random_access*/) void assign_dispatch(Iterator first, Iterator last, Category const& /*not_random_access*/)
{ {
namespace sv = varray_detail; namespace sv = varray_detail;
@@ -1909,8 +1895,8 @@ public:
typedef pointer iterator; typedef pointer iterator;
typedef const_pointer const_iterator; typedef const_pointer const_iterator;
typedef boost::reverse_iterator<iterator> reverse_iterator; typedef std::reverse_iterator<iterator> reverse_iterator;
typedef boost::reverse_iterator<const_iterator> const_reverse_iterator; typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
// nothrow // nothrow
varray() {} varray() {}
@@ -2014,8 +2000,6 @@ public:
template <typename Iterator> template <typename Iterator>
void insert(iterator, Iterator first, Iterator last) void insert(iterator, Iterator first, Iterator last)
{ {
// TODO - add MPL_ASSERT, check if Iterator is really an iterator
//typedef typename boost::iterator_traversal<Iterator>::type traversal;
errh::check_capacity(*this, std::distance(first, last)); // may throw errh::check_capacity(*this, std::distance(first, last)); // may throw
} }
@@ -2038,8 +2022,6 @@ public:
template <typename Iterator> template <typename Iterator>
void assign(Iterator first, Iterator last) void assign(Iterator first, Iterator last)
{ {
// TODO - add MPL_ASSERT, check if Iterator is really an iterator
//typedef typename boost::iterator_traversal<Iterator>::type traversal;
errh::check_capacity(*this, std::distance(first, last)); // may throw errh::check_capacity(*this, std::distance(first, last)); // may throw
} }

View File

@@ -29,16 +29,12 @@
#include <boost/type_traits/has_trivial_copy.hpp> #include <boost/type_traits/has_trivial_copy.hpp>
#include <boost/type_traits/has_trivial_constructor.hpp> #include <boost/type_traits/has_trivial_constructor.hpp>
#include <boost/type_traits/has_trivial_destructor.hpp> #include <boost/type_traits/has_trivial_destructor.hpp>
//#include <boost/type_traits/has_nothrow_constructor.hpp> #include <boost/iterator/iterator_traits.hpp>
//#include <boost/type_traits/has_nothrow_copy.hpp>
//#include <boost/type_traits/has_nothrow_assign.hpp>
//#include <boost/type_traits/has_nothrow_destructor.hpp>
#include <boost/detail/no_exceptions_support.hpp> #include <boost/core/no_exceptions_support.hpp>
#include <boost/config.hpp> #include <boost/config.hpp>
#include <boost/move/move.hpp> #include <boost/move/move.hpp>
#include <boost/utility/addressof.hpp> #include <boost/utility/addressof.hpp>
#include <boost/iterator/iterator_traits.hpp>
// TODO - move vectors iterators optimization to the other, optional file instead of checking defines? // TODO - move vectors iterators optimization to the other, optional file instead of checking defines?

View File

@@ -2,6 +2,7 @@
// //
// Copyright (c) 2012-2013 Adam Wulkiewicz, Lodz, Poland. // Copyright (c) 2012-2013 Adam Wulkiewicz, Lodz, Poland.
// Copyright (c) 2011-2013 Andrew Hundt. // Copyright (c) 2011-2013 Andrew Hundt.
// Copyright (c) 2014-2014 Ion Gaztanaga
// //
// Use, modification and distribution is subject to the Boost Software License, // Use, modification and distribution is subject to the Boost Software License,
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

View File

@@ -30,7 +30,7 @@
#include <boost/assert.hpp> #include <boost/assert.hpp>
#include <memory> #include <memory>
#include <algorithm> #include <algorithm>
#include <boost/detail/no_exceptions_support.hpp> #include <boost/core/no_exceptions_support.hpp>
#include <boost/type_traits/has_trivial_destructor.hpp> #include <boost/type_traits/has_trivial_destructor.hpp>
#include <boost/type_traits/has_trivial_copy.hpp> #include <boost/type_traits/has_trivial_copy.hpp>
#include <boost/type_traits/has_trivial_assign.hpp> #include <boost/type_traits/has_trivial_assign.hpp>
@@ -39,8 +39,9 @@
#include <boost/move/utility.hpp> #include <boost/move/utility.hpp>
#include <boost/move/iterator.hpp> #include <boost/move/iterator.hpp>
#include <boost/move/detail/move_helpers.hpp> #include <boost/move/detail/move_helpers.hpp>
#include <boost/move/traits.hpp>
#include <boost/container/detail/advanced_insert_int.hpp> #include <boost/container/detail/advanced_insert_int.hpp>
#include <boost/detail/no_exceptions_support.hpp> #include <boost/core/no_exceptions_support.hpp>
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
#include <initializer_list> #include <initializer_list>

View File

@@ -30,7 +30,7 @@
#include <boost/container/detail/pool_common.hpp> #include <boost/container/detail/pool_common.hpp>
#include <boost/container/throw_exception.hpp> #include <boost/container/throw_exception.hpp>
#include <boost/assert.hpp> #include <boost/assert.hpp>
#include <boost/detail/no_exceptions_support.hpp> #include <boost/core/no_exceptions_support.hpp>
#include <cstddef> #include <cstddef>
namespace boost { namespace boost {

View File

@@ -26,7 +26,7 @@
#include <boost/container/detail/type_traits.hpp> #include <boost/container/detail/type_traits.hpp>
#include <iterator> //std::iterator_traits #include <iterator> //std::iterator_traits
#include <boost/assert.hpp> #include <boost/assert.hpp>
#include <boost/detail/no_exceptions_support.hpp> #include <boost/core/no_exceptions_support.hpp>
namespace boost { namespace container { namespace container_detail { namespace boost { namespace container { namespace container_detail {

View File

@@ -22,7 +22,7 @@
#include <boost/type_traits/has_trivial_copy.hpp> #include <boost/type_traits/has_trivial_copy.hpp>
#include <boost/type_traits/has_trivial_assign.hpp> #include <boost/type_traits/has_trivial_assign.hpp>
#include <boost/detail/no_exceptions_support.hpp> #include <boost/core/no_exceptions_support.hpp>
#include <boost/container/detail/type_traits.hpp> #include <boost/container/detail/type_traits.hpp>
#include <boost/container/detail/mpl.hpp> #include <boost/container/detail/mpl.hpp>

View File

@@ -26,7 +26,7 @@
#include <boost/container/detail/mpl.hpp> //integral_constant #include <boost/container/detail/mpl.hpp> //integral_constant
#include <boost/intrusive/pointer_traits.hpp> //pointer_traits #include <boost/intrusive/pointer_traits.hpp> //pointer_traits
#include <utility> //pair #include <utility> //pair
#include <boost/detail/no_exceptions_support.hpp> //BOOST_TRY #include <boost/core/no_exceptions_support.hpp> //BOOST_TRY
namespace boost { namespace boost {
namespace container { namespace container {

View File

@@ -33,7 +33,7 @@
#include <boost/container/detail/destroyers.hpp> #include <boost/container/detail/destroyers.hpp>
#include <boost/container/detail/memory_util.hpp> #include <boost/container/detail/memory_util.hpp>
#include <boost/container/detail/allocator_version_traits.hpp> #include <boost/container/detail/allocator_version_traits.hpp>
#include <boost/detail/no_exceptions_support.hpp> #include <boost/core/no_exceptions_support.hpp>
#ifndef BOOST_CONTAINER_PERFECT_FORWARDING #ifndef BOOST_CONTAINER_PERFECT_FORWARDING
#include <boost/container/detail/preprocessor.hpp> #include <boost/container/detail/preprocessor.hpp>

View File

@@ -27,7 +27,7 @@
#include <boost/container/detail/math_functions.hpp> #include <boost/container/detail/math_functions.hpp>
#include <boost/container/detail/mpl.hpp> #include <boost/container/detail/mpl.hpp>
#include <boost/container/detail/pool_common.hpp> #include <boost/container/detail/pool_common.hpp>
#include <boost/detail/no_exceptions_support.hpp> #include <boost/core/no_exceptions_support.hpp>
#include <boost/assert.hpp> #include <boost/assert.hpp>
#include <cstddef> #include <cstddef>

View File

@@ -29,7 +29,7 @@
#include <algorithm> //std::swap #include <algorithm> //std::swap
#include <boost/move/utility.hpp> #include <boost/move/utility.hpp>
#include <boost/type_traits/is_class.hpp>
#ifndef BOOST_CONTAINER_PERFECT_FORWARDING #ifndef BOOST_CONTAINER_PERFECT_FORWARDING
#include <boost/container/detail/preprocessor.hpp> #include <boost/container/detail/preprocessor.hpp>
@@ -330,22 +330,42 @@ struct is_enum< ::boost::container::container_detail::pair<T, U> >
static const bool value = false; static const bool value = false;
}; };
template <class T>
struct is_class;
//This specialization is needed to avoid instantiation of pair in //This specialization is needed to avoid instantiation of pair in
//is_class, and allow recursive maps. //is_class, and allow recursive maps.
template <class T1, class T2> template <class T1, class T2>
struct is_class< ::boost::container::container_detail::pair<T1, T2> > struct is_class< ::boost::container::container_detail::pair<T1, T2> >
: public ::boost::true_type {
{}; static const bool value = true;
};
#ifdef BOOST_NO_CXX11_RVALUE_REFERENCES #ifdef BOOST_NO_CXX11_RVALUE_REFERENCES
template<class T1, class T2> template<class T1, class T2>
struct has_move_emulation_enabled< ::boost::container::container_detail::pair<T1, T2> > struct has_move_emulation_enabled< ::boost::container::container_detail::pair<T1, T2> >
: ::boost::true_type {
{}; static const bool value = true;
};
#endif #endif
namespace move_detail{
template<class T>
struct is_class_or_union;
template <class T1, class T2>
struct is_class_or_union< ::boost::container::container_detail::pair<T1, T2> >
//This specialization is needed to avoid instantiation of pair in
//is_class, and allow recursive maps.
{
static const bool value = true;
};
} //namespace move_detail{
} //namespace boost { } //namespace boost {

View File

@@ -34,7 +34,7 @@
// //
#include <boost/move/utility.hpp> #include <boost/move/utility.hpp>
#include <boost/type_traits/has_trivial_destructor.hpp> #include <boost/type_traits/has_trivial_destructor.hpp>
#include <boost/detail/no_exceptions_support.hpp> #include <boost/core/no_exceptions_support.hpp>
// //
#ifndef BOOST_CONTAINER_PERFECT_FORWARDING #ifndef BOOST_CONTAINER_PERFECT_FORWARDING
#include <boost/container/detail/preprocessor.hpp> #include <boost/container/detail/preprocessor.hpp>

View File

@@ -16,14 +16,12 @@
#include <cstdio> #include <cstdio>
#include <cstring> //for ::memmove / ::memcpy #include <cstring> //for ::memmove / ::memcpy
#include <boost/type_traits/is_fundamental.hpp>
#include <boost/type_traits/is_pointer.hpp> #include <boost/type_traits/is_pointer.hpp>
#include <boost/type_traits/is_enum.hpp> #include <boost/type_traits/is_enum.hpp>
#include <boost/type_traits/is_member_pointer.hpp>
#include <boost/type_traits/is_class.hpp> #include <boost/type_traits/is_class.hpp>
#include <boost/type_traits/is_integral.hpp> #include <boost/type_traits/is_integral.hpp>
#include <boost/type_traits/is_floating_point.hpp> #include <boost/type_traits/is_floating_point.hpp>
#include <boost/type_traits/is_pointer.hpp> #include <boost/type_traits/is_copy_constructible.hpp>
#include <boost/type_traits/has_trivial_destructor.hpp> #include <boost/type_traits/has_trivial_destructor.hpp>
#include <boost/type_traits/has_trivial_copy.hpp> #include <boost/type_traits/has_trivial_copy.hpp>
#include <boost/type_traits/has_trivial_assign.hpp> #include <boost/type_traits/has_trivial_assign.hpp>
@@ -36,7 +34,7 @@
#include <boost/container/detail/mpl.hpp> #include <boost/container/detail/mpl.hpp>
#include <boost/container/detail/type_traits.hpp> #include <boost/container/detail/type_traits.hpp>
#include <boost/container/allocator_traits.hpp> #include <boost/container/allocator_traits.hpp>
#include <boost/detail/no_exceptions_support.hpp> #include <boost/core/no_exceptions_support.hpp>
#include <boost/container/detail/memory_util.hpp> #include <boost/container/detail/memory_util.hpp>
#include <boost/intrusive/pointer_traits.hpp> #include <boost/intrusive/pointer_traits.hpp>
#include <boost/aligned_storage.hpp> #include <boost/aligned_storage.hpp>

View File

@@ -29,7 +29,8 @@
#include <boost/container/throw_exception.hpp> #include <boost/container/throw_exception.hpp>
#include <boost/move/utility.hpp> #include <boost/move/utility.hpp>
#include <boost/move/detail/move_helpers.hpp> #include <boost/move/detail/move_helpers.hpp>
#include <boost/detail/no_exceptions_support.hpp> #include <boost/move/traits.hpp>
#include <boost/core/no_exceptions_support.hpp>
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
#include <initializer_list> #include <initializer_list>

View File

@@ -27,6 +27,7 @@
#include <boost/container/allocator_traits.hpp> #include <boost/container/allocator_traits.hpp>
#include <boost/move/utility.hpp> #include <boost/move/utility.hpp>
#include <boost/move/detail/move_helpers.hpp> #include <boost/move/detail/move_helpers.hpp>
#include <boost/move/traits.hpp>
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
#include <initializer_list> #include <initializer_list>

View File

@@ -24,10 +24,10 @@
#include <boost/move/utility.hpp> #include <boost/move/utility.hpp>
#include <boost/move/iterator.hpp> #include <boost/move/iterator.hpp>
#include <boost/move/detail/move_helpers.hpp> #include <boost/move/detail/move_helpers.hpp>
#include <boost/move/traits.hpp>
#include <boost/intrusive/pointer_traits.hpp> #include <boost/intrusive/pointer_traits.hpp>
#include <boost/container/detail/utilities.hpp> #include <boost/container/detail/utilities.hpp>
#include <boost/container/detail/algorithms.hpp> #include <boost/container/detail/algorithms.hpp>
#include <boost/type_traits/has_trivial_destructor.hpp>
#include <boost/intrusive/list.hpp> #include <boost/intrusive/list.hpp>
#include <boost/assert.hpp> #include <boost/assert.hpp>
#include <boost/container/detail/node_alloc_holder.hpp> #include <boost/container/detail/node_alloc_holder.hpp>

View File

@@ -32,9 +32,10 @@
#include <boost/container/throw_exception.hpp> #include <boost/container/throw_exception.hpp>
#include <boost/move/utility.hpp> #include <boost/move/utility.hpp>
#include <boost/move/detail/move_helpers.hpp> #include <boost/move/detail/move_helpers.hpp>
#include <boost/move/traits.hpp>
#include <boost/static_assert.hpp> #include <boost/static_assert.hpp>
#include <boost/container/detail/value_init.hpp> #include <boost/container/detail/value_init.hpp>
#include <boost/detail/no_exceptions_support.hpp> #include <boost/core/no_exceptions_support.hpp>
#if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
#include <initializer_list> #include <initializer_list>

View File

@@ -31,7 +31,7 @@
#include <utility> #include <utility>
#include <boost/container/detail/pair.hpp> #include <boost/container/detail/pair.hpp>
#include <boost/move/utility.hpp> #include <boost/move/utility.hpp>
#include <boost/detail/no_exceptions_support.hpp> #include <boost/core/no_exceptions_support.hpp>
namespace boost { namespace container { namespace boost { namespace container {

View File

@@ -25,6 +25,7 @@
#include <boost/move/utility.hpp> #include <boost/move/utility.hpp>
#include <boost/move/detail/move_helpers.hpp> #include <boost/move/detail/move_helpers.hpp>
#include <boost/move/traits.hpp>
#include <boost/container/detail/mpl.hpp> #include <boost/container/detail/mpl.hpp>
#include <boost/container/detail/tree.hpp> #include <boost/container/detail/tree.hpp>
#include <boost/move/utility.hpp> #include <boost/move/utility.hpp>

View File

@@ -22,13 +22,13 @@
#include <boost/container/throw_exception.hpp> #include <boost/container/throw_exception.hpp>
#include <boost/move/utility.hpp> #include <boost/move/utility.hpp>
#include <boost/move/detail/move_helpers.hpp> #include <boost/move/detail/move_helpers.hpp>
#include <boost/move/traits.hpp>
#include <boost/intrusive/pointer_traits.hpp> #include <boost/intrusive/pointer_traits.hpp>
#include <boost/container/detail/utilities.hpp> #include <boost/container/detail/utilities.hpp>
#include <boost/container/detail/iterators.hpp> #include <boost/container/detail/iterators.hpp>
#include <boost/container/detail/mpl.hpp> #include <boost/container/detail/mpl.hpp>
#include <boost/container/detail/type_traits.hpp> #include <boost/container/detail/type_traits.hpp>
#include <boost/type_traits/has_trivial_destructor.hpp> #include <boost/core/no_exceptions_support.hpp>
#include <boost/detail/no_exceptions_support.hpp>
#include <boost/container/detail/node_alloc_holder.hpp> #include <boost/container/detail/node_alloc_holder.hpp>
#include <boost/intrusive/slist.hpp> #include <boost/intrusive/slist.hpp>

View File

@@ -35,7 +35,7 @@
#include <boost/container/allocator_traits.hpp> #include <boost/container/allocator_traits.hpp>
#include <boost/container/throw_exception.hpp> #include <boost/container/throw_exception.hpp>
#include <boost/intrusive/pointer_traits.hpp> #include <boost/intrusive/pointer_traits.hpp>
#include <boost/detail/no_exceptions_support.hpp> #include <boost/core/no_exceptions_support.hpp>
#include <boost/aligned_storage.hpp> #include <boost/aligned_storage.hpp>
#include <boost/move/utility.hpp> #include <boost/move/utility.hpp>
#include <boost/move/iterator.hpp> #include <boost/move/iterator.hpp>

View File

@@ -29,7 +29,7 @@
#include <boost/static_assert.hpp> #include <boost/static_assert.hpp>
#include <boost/functional/hash.hpp> #include <boost/functional/hash.hpp>
#include <boost/intrusive/pointer_traits.hpp> #include <boost/intrusive/pointer_traits.hpp>
#include <boost/detail/no_exceptions_support.hpp> #include <boost/core/no_exceptions_support.hpp>
#include <functional> #include <functional>
#include <string> #include <string>
@@ -45,9 +45,9 @@
#include <cstddef> #include <cstddef>
#include <climits> #include <climits>
#include <boost/container/detail/type_traits.hpp> #include <boost/container/detail/type_traits.hpp>
#include <boost/detail/no_exceptions_support.hpp>
#include <boost/type_traits/has_trivial_destructor.hpp> #include <boost/type_traits/has_trivial_destructor.hpp>
#include <boost/aligned_storage.hpp> #include <boost/aligned_storage.hpp>
#include <boost/move/traits.hpp>
namespace boost { namespace boost {
namespace container { namespace container {
@@ -2895,6 +2895,9 @@ inline std::size_t hash_value(basic_string<Ch, std::char_traits<Ch>, Allocator>
namespace boost { namespace boost {
template <class T>
struct has_trivial_destructor_after_move;
//!has_trivial_destructor_after_move<> == true_type //!has_trivial_destructor_after_move<> == true_type
//!specialization for optimizations //!specialization for optimizations
template <class C, class T, class Allocator> template <class C, class T, class Allocator>

View File

@@ -182,9 +182,57 @@
<Filter <Filter
Name="test" Name="test"
Filter=""> Filter="">
<File
RelativePath="..\..\test\check_equal_containers.hpp">
</File>
<File
RelativePath="..\..\test\default_init_test.hpp">
</File>
<File
RelativePath="..\..\test\dummy_test_allocator.hpp">
</File>
<File
RelativePath="..\..\test\emplace_test.hpp">
</File>
<File
RelativePath="..\..\test\expand_bwd_test_allocator.hpp">
</File>
<File
RelativePath="..\..\test\expand_bwd_test_template.hpp">
</File>
<File
RelativePath="..\..\test\input_from_forward_iterator.hpp">
</File>
<File
RelativePath="..\..\test\insert_test.hpp">
</File>
<File <File
RelativePath="..\..\test\Jamfile.v2"> RelativePath="..\..\test\Jamfile.v2">
</File> </File>
<File
RelativePath="..\..\test\list_test.hpp">
</File>
<File
RelativePath="..\..\test\map_test.hpp">
</File>
<File
RelativePath="..\..\test\movable_int.hpp">
</File>
<File
RelativePath="..\..\test\print_container.hpp">
</File>
<File
RelativePath="..\..\test\propagate_allocator_test.hpp">
</File>
<File
RelativePath="..\..\test\set_test.hpp">
</File>
<File
RelativePath="..\..\test\static_vector_test.hpp">
</File>
<File
RelativePath="..\..\test\vector_test.hpp">
</File>
</Filter> </Filter>
<Filter <Filter
Name="doc" Name="doc"

View File

@@ -30,7 +30,7 @@
#include "input_from_forward_iterator.hpp" #include "input_from_forward_iterator.hpp"
#include <boost/move/utility.hpp> #include <boost/move/utility.hpp>
#include <boost/move/iterator.hpp> #include <boost/move/iterator.hpp>
#include <boost/detail/no_exceptions_support.hpp> #include <boost/core/no_exceptions_support.hpp>
#include <boost/static_assert.hpp> #include <boost/static_assert.hpp>
#include "insert_test.hpp" #include "insert_test.hpp"

View File

@@ -34,7 +34,7 @@
#include "propagate_allocator_test.hpp" #include "propagate_allocator_test.hpp"
#include "vector_test.hpp" #include "vector_test.hpp"
#include "default_init_test.hpp" #include "default_init_test.hpp"
#include <boost/detail/no_exceptions_support.hpp> #include <boost/core/no_exceptions_support.hpp>
using namespace boost::container; using namespace boost::container;

View File

@@ -7,7 +7,7 @@
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
#include <deque> #include <deque>
#include <boost/detail/lightweight_test.hpp> #include <boost/core/lightweight_test.hpp>
#include "check_equal_containers.hpp" #include "check_equal_containers.hpp"
namespace boost { namespace boost {

View File

@@ -16,7 +16,7 @@
#include <iostream> #include <iostream>
#include <boost/move/utility.hpp> #include <boost/move/utility.hpp>
#include <boost/container/vector.hpp> #include <boost/container/vector.hpp>
#include <boost/detail/lightweight_test.hpp> #include <boost/core/lightweight_test.hpp>
class X class X
{ {

View File

@@ -11,7 +11,7 @@
#define BOOST_CONTAINER_PROPAGATE_ALLOCATOR_TEST_HPP #define BOOST_CONTAINER_PROPAGATE_ALLOCATOR_TEST_HPP
#include <boost/container/detail/config_begin.hpp> #include <boost/container/detail/config_begin.hpp>
#include <boost/detail/lightweight_test.hpp> #include <boost/core/lightweight_test.hpp>
#include "dummy_test_allocator.hpp" #include "dummy_test_allocator.hpp"
#include <iostream> #include <iostream>

View File

@@ -8,8 +8,8 @@
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
#include <boost/container/detail/config_begin.hpp> #include <boost/container/detail/config_begin.hpp>
#include <boost/detail/lightweight_test.hpp> #include <boost/core/lightweight_test.hpp>
#include <boost/detail/no_exceptions_support.hpp> #include <boost/core/no_exceptions_support.hpp>
#include <vector> #include <vector>
#include <list> #include <list>

View File

@@ -12,7 +12,7 @@
#include <boost/container/detail/config_begin.hpp> #include <boost/container/detail/config_begin.hpp>
#include <boost/container/throw_exception.hpp> #include <boost/container/throw_exception.hpp>
#include <boost/detail/lightweight_test.hpp> #include <boost/core/lightweight_test.hpp>
using namespace boost::container; using namespace boost::container;

View File

@@ -30,7 +30,7 @@
#include "input_from_forward_iterator.hpp" #include "input_from_forward_iterator.hpp"
#include <boost/move/utility.hpp> #include <boost/move/utility.hpp>
#include <boost/move/iterator.hpp> #include <boost/move/iterator.hpp>
#include <boost/detail/no_exceptions_support.hpp> #include <boost/core/no_exceptions_support.hpp>
#include <boost/static_assert.hpp> #include <boost/static_assert.hpp>
#include "insert_test.hpp" #include "insert_test.hpp"