mirror of
https://github.com/boostorg/container.git
synced 2025-08-02 14:04:26 +02:00
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:
@@ -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>
|
||||||
{
|
{
|
||||||
|
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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?
|
||||||
|
|
||||||
|
@@ -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
|
||||||
|
@@ -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>
|
||||||
|
@@ -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 {
|
||||||
|
@@ -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 {
|
||||||
|
|
||||||
|
@@ -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>
|
||||||
|
@@ -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 {
|
||||||
|
@@ -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>
|
||||||
|
@@ -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>
|
||||||
|
|
||||||
|
@@ -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 {
|
||||||
|
|
||||||
|
@@ -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>
|
||||||
|
@@ -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>
|
||||||
|
@@ -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>
|
||||||
|
@@ -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>
|
||||||
|
@@ -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>
|
||||||
|
@@ -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>
|
||||||
|
@@ -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 {
|
||||||
|
|
||||||
|
@@ -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>
|
||||||
|
@@ -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>
|
||||||
|
|
||||||
|
@@ -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>
|
||||||
|
@@ -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>
|
||||||
|
@@ -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"
|
||||||
|
@@ -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"
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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 {
|
||||||
|
@@ -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
|
||||||
{
|
{
|
||||||
|
@@ -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>
|
||||||
|
@@ -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>
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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"
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user