Implement the first part of N4258: 'Cleaning up noexcept in the Library'. This patch deals with swapping containers, and implements a more strict noexcept specification (a conforming extension) than the standard mandates.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@242056 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -120,11 +120,9 @@ public:
|
||||
void clear() noexcept;
|
||||
|
||||
void swap(unordered_set&)
|
||||
noexcept(
|
||||
(!allocator_type::propagate_on_container_swap::value ||
|
||||
__is_nothrow_swappable<allocator_type>::value) &&
|
||||
__is_nothrow_swappable<hasher>::value &&
|
||||
__is_nothrow_swappable<key_equal>::value);
|
||||
noexcept(allocator_traits<Allocator>::is_always_equal::value &&
|
||||
noexcept(swap(declval<hasher&>(), declval<hasher&>())) &&
|
||||
noexcept(swap(declval<key_equal&>(), declval<key_equal&>()))); // C++17
|
||||
|
||||
hasher hash_function() const;
|
||||
key_equal key_eq() const;
|
||||
@@ -270,11 +268,9 @@ public:
|
||||
void clear() noexcept;
|
||||
|
||||
void swap(unordered_multiset&)
|
||||
noexcept(
|
||||
(!allocator_type::propagate_on_container_swap::value ||
|
||||
__is_nothrow_swappable<allocator_type>::value) &&
|
||||
__is_nothrow_swappable<hasher>::value &&
|
||||
__is_nothrow_swappable<key_equal>::value);
|
||||
noexcept(allocator_traits<Allocator>::is_always_equal::value &&
|
||||
noexcept(swap(declval<hasher&>(), declval<hasher&>())) &&
|
||||
noexcept(swap(declval<key_equal&>(), declval<key_equal&>()))); // C++17
|
||||
|
||||
hasher hash_function() const;
|
||||
key_equal key_eq() const;
|
||||
|
Reference in New Issue
Block a user