diff --git a/doc/container.qbk b/doc/container.qbk index 3561caf..9fc605e 100644 --- a/doc/container.qbk +++ b/doc/container.qbk @@ -1216,6 +1216,7 @@ use [*Boost.Container]? There are several reasons for that: [section:release_notes_boost_1_63_00 Boost 1.63 Release] * 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://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()]]. diff --git a/include/boost/container/detail/pair.hpp b/include/boost/container/detail/pair.hpp index 63d1dea..4abff4b 100644 --- a/include/boost/container/detail/pair.hpp +++ b/include/boost/container/detail/pair.hpp @@ -428,36 +428,6 @@ inline void swap(pair& x, pair& y) } //namespace container_detail { } //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 -struct is_enum; - -template -struct is_enum< ::boost::container::container_detail::pair > -{ - static const bool value = false; -}; - -template -struct is_enum< ::std::pair > -{ - static const bool value = false; -}; - -template -struct is_class; - -//This specialization is needed to avoid instantiation of pair in -//is_class, and allow recursive maps. -template -struct is_class< ::boost::container::container_detail::pair > -{ - static const bool value = true; -}; - #ifdef BOOST_NO_CXX11_RVALUE_REFERENCES template