From ed8c0f9ecdf6ec558c2e6c405f63bd28bc3c25b4 Mon Sep 17 00:00:00 2001 From: Daniel James Date: Sat, 15 Apr 2017 17:35:09 +0100 Subject: [PATCH] Add deprecated attributes to deprecated functions --- doc/changes.qbk | 5 ++++ .../boost/unordered/detail/implementation.hpp | 27 +++++++++++++++++++ include/boost/unordered/unordered_map.hpp | 4 +++ include/boost/unordered/unordered_set.hpp | 4 +++ test/Jamfile.v2 | 2 +- 5 files changed, 41 insertions(+), 1 deletion(-) diff --git a/doc/changes.qbk b/doc/changes.qbk index 118ca16f..987c818f 100644 --- a/doc/changes.qbk +++ b/doc/changes.qbk @@ -312,4 +312,9 @@ C++11 support has resulted in some breaking changes: `unordered_multiset` yet. That will hopefully be in the next version of Boost. +[h2 Boost 1.65.0] + +* Add deprecated attributes to `quick_erase` and `erase_return_void`. + Will fully remove in a future version. + [endsect] diff --git a/include/boost/unordered/detail/implementation.hpp b/include/boost/unordered/detail/implementation.hpp index 2d0830ea..9b5928e1 100644 --- a/include/boost/unordered/detail/implementation.hpp +++ b/include/boost/unordered/detail/implementation.hpp @@ -104,6 +104,33 @@ #define BOOST_UNORDERED_USE_ALLOCATOR_TRAITS 0 #endif +// +// Other configuration macros +// + +#if defined(BOOST_UNORDERED_SUPPRESS_DEPRECATED) +#define BOOST_UNORDERED_DEPRECATED(msg) +#endif + +#if defined(__has_cpp_attribute) && \ + (!defined(BOOST_GCC) || defined(BOOST_GCC_CXX11)) +#if __has_cpp_attribute(deprecated) && !defined(BOOST_UNORDERED_DEPRECATED) +#define BOOST_UNORDERED_DEPRECATED(msg) [[deprecated(msg)]] +#endif +#endif + +#if !defined(BOOST_UNORDERED_DEPRECATED) +#if defined(__GNUC__) && __GNUC__ >= 4 +#define BOOST_UNORDERED_DEPRECATED(msg) __attribute__((deprecated)) +#elif defined(_MSC_VER) && _MSC_VER >= 1400 +#define BOOST_UNORDERED_DEPRECATED(msg) __declspec(deprecated(msg)) +#elif defined(_MSC_VER) && _MSC_VER >= 1310 +#define BOOST_UNORDERED_DEPRECATED(msg) __declspec(deprecated) +#else +#define BOOST_UNORDERED_DEPRECATED(msg) +#endif +#endif + namespace boost { namespace unordered { namespace iterator_detail { diff --git a/include/boost/unordered/unordered_map.hpp b/include/boost/unordered/unordered_map.hpp index 8aaf8d33..75e8a02a 100644 --- a/include/boost/unordered/unordered_map.hpp +++ b/include/boost/unordered/unordered_map.hpp @@ -635,7 +635,9 @@ template class unordered_map iterator erase(const_iterator); size_type erase(const key_type&); iterator erase(const_iterator, const_iterator); + BOOST_UNORDERED_DEPRECATED("Use erase instead") void quick_erase(const_iterator it) { erase(it); } + BOOST_UNORDERED_DEPRECATED("Use erase instead") void erase_return_void(const_iterator it) { erase(it); } void clear(); @@ -1112,7 +1114,9 @@ template class unordered_multimap iterator erase(const_iterator); size_type erase(const key_type&); iterator erase(const_iterator, const_iterator); + BOOST_UNORDERED_DEPRECATED("Use erase instead") void quick_erase(const_iterator it) { erase(it); } + BOOST_UNORDERED_DEPRECATED("Use erase instead") void erase_return_void(const_iterator it) { erase(it); } void clear(); diff --git a/include/boost/unordered/unordered_set.hpp b/include/boost/unordered/unordered_set.hpp index 0c6b221a..afb25916 100644 --- a/include/boost/unordered/unordered_set.hpp +++ b/include/boost/unordered/unordered_set.hpp @@ -388,7 +388,9 @@ template class unordered_set iterator erase(const_iterator); size_type erase(const key_type&); iterator erase(const_iterator, const_iterator); + BOOST_UNORDERED_DEPRECATED("Use erase instead") void quick_erase(const_iterator it) { erase(it); } + BOOST_UNORDERED_DEPRECATED("Use erase instead") void erase_return_void(const_iterator it) { erase(it); } void clear(); @@ -835,7 +837,9 @@ template class unordered_multiset iterator erase(const_iterator); size_type erase(const key_type&); iterator erase(const_iterator, const_iterator); + BOOST_UNORDERED_DEPRECATED("Use erase instead") void quick_erase(const_iterator it) { erase(it); } + BOOST_UNORDERED_DEPRECATED("Use erase instead") void erase_return_void(const_iterator it) { erase(it); } void clear(); diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 2aad7e8d..c50aec60 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -45,7 +45,7 @@ test-suite unordered [ run unordered/insert_hint_tests.cpp ] [ run unordered/emplace_tests.cpp ] [ run unordered/unnecessary_copy_tests.cpp ] - [ run unordered/erase_tests.cpp ] + [ run unordered/erase_tests.cpp : : : BOOST_UNORDERED_SUPPRESS_DEPRECATED ] [ run unordered/erase_equiv_tests.cpp ] [ run unordered/extract_tests.cpp ] [ run unordered/node_handle_tests.cpp ]