mirror of
https://github.com/boostorg/container.git
synced 2025-08-03 14:34:27 +02:00
Merge branch 'develop'
This commit is contained in:
@@ -1216,6 +1216,7 @@ use [*Boost.Container]? There are several reasons for that:
|
|||||||
[section:release_notes_boost_1_63_00 Boost 1.63 Release]
|
[section:release_notes_boost_1_63_00 Boost 1.63 Release]
|
||||||
|
|
||||||
* Fixed bugs:
|
* Fixed bugs:
|
||||||
|
* [@https://svn.boost.org/trac/boost/ticket/12534 Trac #12534: ['"flat_map fails to compile if included after type_traits is instantiated under gcc"]].
|
||||||
* [@https://svn.boost.org/trac/boost/ticket/12577 Trac #12577: ['"Null reference in pair.hpp triggers runtime warning with -fsanitize=undefined"]].
|
* [@https://svn.boost.org/trac/boost/ticket/12577 Trac #12577: ['"Null reference in pair.hpp triggers runtime warning with -fsanitize=undefined"]].
|
||||||
* [@https://github.com/boostorg/container/pull/41 GitHub #40: ['Fix parameter types in copy_move_algo.hpp: iterator_traits::difference_type -> allocator_traits::size_type]].
|
* [@https://github.com/boostorg/container/pull/41 GitHub #40: ['Fix parameter types in copy_move_algo.hpp: iterator_traits::difference_type -> allocator_traits::size_type]].
|
||||||
* [@https://github.com/boostorg/container/pull/41 GitHub #41: ['Avoid -Wunreachable-code in do_allocate()]].
|
* [@https://github.com/boostorg/container/pull/41 GitHub #41: ['Avoid -Wunreachable-code in do_allocate()]].
|
||||||
|
@@ -428,36 +428,6 @@ inline void swap(pair<T1, T2>& x, pair<T1, T2>& y)
|
|||||||
} //namespace container_detail {
|
} //namespace container_detail {
|
||||||
} //namespace container {
|
} //namespace container {
|
||||||
|
|
||||||
|
|
||||||
//Without this specialization recursive flat_(multi)map instantiation fails
|
|
||||||
//because is_enum needs to instantiate the recursive pair, leading to a compilation error).
|
|
||||||
//This breaks the cycle clearly stating that pair is not an enum avoiding any instantiation.
|
|
||||||
template<class T>
|
|
||||||
struct is_enum;
|
|
||||||
|
|
||||||
template<class T, class U>
|
|
||||||
struct is_enum< ::boost::container::container_detail::pair<T, U> >
|
|
||||||
{
|
|
||||||
static const bool value = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<class T, class U>
|
|
||||||
struct is_enum< ::std::pair<T, U> >
|
|
||||||
{
|
|
||||||
static const bool value = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
template <class T>
|
|
||||||
struct is_class;
|
|
||||||
|
|
||||||
//This specialization is needed to avoid instantiation of pair in
|
|
||||||
//is_class, and allow recursive maps.
|
|
||||||
template <class T1, class T2>
|
|
||||||
struct is_class< ::boost::container::container_detail::pair<T1, T2> >
|
|
||||||
{
|
|
||||||
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>
|
||||||
|
Reference in New Issue
Block a user