mirror of
https://github.com/gcc-mirror/gcc.git
synced 2024-11-21 13:40:47 +00:00
libstdc++: Do not define _Insert_base::try_emplace before C++17
This is not a reserved name in C++11 and C++14, so must not be defined. Also use the appropriate feature test macros for the try_emplace members of the Debug Mode maps. libstdc++-v3/ChangeLog: * include/bits/hashtable_policy.h (_Insert_base::try_emplace): Do not define for C++11 and C++14. * include/debug/map.h (try_emplace): Use feature test macro. * include/debug/unordered_map (try_emplace): Likewise. * testsuite/17_intro/names.cc: Define try_emplace before C++17.
This commit is contained in:
parent
12383255fe
commit
b66a57c0ad
@ -1008,6 +1008,7 @@ namespace __detail
|
||||
return __h._M_insert(__hint, __v, __node_gen, __unique_keys{});
|
||||
}
|
||||
|
||||
#ifdef __glibcxx_unordered_map_try_emplace // C++ >= 17 && HOSTED
|
||||
template<typename _KType, typename... _Args>
|
||||
std::pair<iterator, bool>
|
||||
try_emplace(const_iterator, _KType&& __k, _Args&&... __args)
|
||||
@ -1029,6 +1030,7 @@ namespace __detail
|
||||
__node._M_node = nullptr;
|
||||
return { __it, true };
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
insert(initializer_list<value_type> __l)
|
||||
|
@ -344,7 +344,7 @@ namespace __debug
|
||||
}
|
||||
|
||||
|
||||
#if __cplusplus > 201402L
|
||||
#ifdef __glibcxx_map_try_emplace // C++ >= 17 && HOSTED
|
||||
template <typename... _Args>
|
||||
pair<iterator, bool>
|
||||
try_emplace(const key_type& __k, _Args&&... __args)
|
||||
|
@ -442,7 +442,7 @@ namespace __debug
|
||||
_M_check_rehashed(__bucket_count);
|
||||
}
|
||||
|
||||
#if __cplusplus > 201402L
|
||||
#ifdef __glibcxx_unordered_map_try_emplace // C++ >= 17 && HOSTED
|
||||
template <typename... _Args>
|
||||
pair<iterator, bool>
|
||||
try_emplace(const key_type& __k, _Args&&... __args)
|
||||
|
@ -138,6 +138,8 @@
|
||||
// <charconv> defines to_chars_result::ptr and to_chars_result::ec
|
||||
#define ec (
|
||||
#define ptr (
|
||||
// <map> and <unordered_map> define try_emplace
|
||||
#define try_emplace (
|
||||
#endif
|
||||
|
||||
// These clash with newlib so don't use them.
|
||||
|
Loading…
Reference in New Issue
Block a user