From 7d639e2e860b42d669f51a649642665a0849897b Mon Sep 17 00:00:00 2001 From: Christian Mazakas Date: Fri, 15 Sep 2023 08:20:41 -0700 Subject: [PATCH] Update docs noexcept specification for move assignment --- doc/unordered/concurrent_flat_map.adoc | 14 ++++++++------ doc/unordered/unordered_flat_map.adoc | 12 +++++++----- doc/unordered/unordered_flat_set.adoc | 12 +++++++----- doc/unordered/unordered_node_map.adoc | 12 +++++++----- doc/unordered/unordered_node_set.adoc | 12 +++++++----- 5 files changed, 36 insertions(+), 26 deletions(-) diff --git a/doc/unordered/concurrent_flat_map.adoc b/doc/unordered/concurrent_flat_map.adoc index 80e4dbf8..a2b28c9c 100644 --- a/doc/unordered/concurrent_flat_map.adoc +++ b/doc/unordered/concurrent_flat_map.adoc @@ -1,4 +1,4 @@ -[#concurrent_flat_map] +[#concurrent_flat_map] == Class Template concurrent_flat_map :idprefix: concurrent_flat_map_ @@ -90,9 +90,10 @@ namespace boost { const allocator_type& a); xref:#concurrent_flat_map_destructor[~concurrent_flat_map](); concurrent_flat_map& xref:#concurrent_flat_map_copy_assignment[operator++=++](const concurrent_flat_map& other); - concurrent_flat_map& xref:#concurrent_flat_map_move_assignment[operator++=++](concurrent_flat_map&& other) - noexcept(boost::allocator_traits::is_always_equal::value || - boost::allocator_traits::propagate_on_container_move_assignment::value); + concurrent_flat_map& xref:#concurrent_flat_map_move_assignment[operator++=++](concurrent_flat_map&& other) ++noexcept( + (boost::allocator_traits::is_always_equal::value || + boost::allocator_traits::propagate_on_container_move_assignment::value) && + std::is_same::value);++ concurrent_flat_map& xref:#concurrent_flat_map_initializer_list_assignment[operator++=++](std::initializer_list); allocator_type xref:#concurrent_flat_map_get_allocator[get_allocator]() const noexcept; @@ -672,8 +673,9 @@ Concurrency:;; Blocking on `*this` and `other`. ==== Move Assignment ```c++ concurrent_flat_map& operator=(concurrent_flat_map&& other) - noexcept(boost::allocator_traits::is_always_equal::value || - boost::allocator_traits::propagate_on_container_move_assignment::value); + noexcept((boost::allocator_traits::is_always_equal::value || + boost::allocator_traits::propagate_on_container_move_assignment::value) && + std::is_same::value); ``` The move assignment operator. Destroys previously existing elements, swaps the hash function and predicate from `other`, and move-assigns the allocator from `other` if `Alloc::propagate_on_container_move_assignment` exists and `Alloc::propagate_on_container_move_assignment::value` is `true`. diff --git a/doc/unordered/unordered_flat_map.adoc b/doc/unordered/unordered_flat_map.adoc index c8fc50bc..7518ba09 100644 --- a/doc/unordered/unordered_flat_map.adoc +++ b/doc/unordered/unordered_flat_map.adoc @@ -97,9 +97,10 @@ namespace boost { const allocator_type& a); xref:#unordered_flat_map_destructor[~unordered_flat_map](); unordered_flat_map& xref:#unordered_flat_map_copy_assignment[operator++=++](const unordered_flat_map& other); - unordered_flat_map& xref:#unordered_flat_map_move_assignment[operator++=++](unordered_flat_map&& other) - noexcept(boost::allocator_traits::is_always_equal::value || - boost::allocator_traits::propagate_on_container_move_assignment::value); + unordered_flat_map& xref:#unordered_flat_map_move_assignment[operator++=++](unordered_flat_map&& other) ++noexcept( + (boost::allocator_traits::is_always_equal::value || + boost::allocator_traits::propagate_on_container_move_assignment::value) && + std::is_same::value);++ unordered_flat_map& xref:#unordered_flat_map_initializer_list_assignment[operator++=++](std::initializer_list); allocator_type xref:#unordered_flat_map_get_allocator[get_allocator]() const noexcept; @@ -631,8 +632,9 @@ Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/CopyInse ==== Move Assignment ```c++ unordered_flat_map& operator=(unordered_flat_map&& other) - noexcept(boost::allocator_traits::is_always_equal::value || - boost::allocator_traits::propagate_on_container_move_assignment::value); + noexcept((boost::allocator_traits::is_always_equal::value || + boost::allocator_traits::propagate_on_container_move_assignment::value) && + std::is_same::value); ``` The move assignment operator. Destroys previously existing elements, swaps the hash function and predicate from `other`, and move-assigns the allocator from `other` if `Alloc::propagate_on_container_move_assignment` exists and `Alloc::propagate_on_container_move_assignment::value` is `true`. diff --git a/doc/unordered/unordered_flat_set.adoc b/doc/unordered/unordered_flat_set.adoc index e11336ca..9fbad161 100644 --- a/doc/unordered/unordered_flat_set.adoc +++ b/doc/unordered/unordered_flat_set.adoc @@ -91,9 +91,10 @@ namespace boost { const allocator_type& a); xref:#unordered_flat_set_destructor[~unordered_flat_set](); unordered_flat_set& xref:#unordered_flat_set_copy_assignment[operator++=++](const unordered_flat_set& other); - unordered_flat_set& xref:#unordered_flat_set_move_assignment[operator++=++](unordered_flat_set&& other) - noexcept(boost::allocator_traits::is_always_equal::value || - boost::allocator_traits::propagate_on_container_move_assignment::value); + unordered_flat_set& xref:#unordered_flat_set_move_assignment[operator++=++](unordered_flat_set&& other) ++noexcept( + (boost::allocator_traits::is_always_equal::value || + boost::allocator_traits::propagate_on_container_move_assignment::value) && + std::is_same::value);++ unordered_flat_set& xref:#unordered_flat_set_initializer_list_assignment[operator++=++](std::initializer_list); allocator_type xref:#unordered_flat_set_get_allocator[get_allocator]() const noexcept; @@ -564,8 +565,9 @@ Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/CopyInse ==== Move Assignment ```c++ unordered_flat_set& operator=(unordered_flat_set&& other) - noexcept(boost::allocator_traits::is_always_equal::value || - boost::allocator_traits::propagate_on_container_move_assignment::value); + noexcept((boost::allocator_traits::is_always_equal::value || + boost::allocator_traits::propagate_on_container_move_assignment::value) && + std::is_same::value); ``` The move assignment operator. Destroys previously existing elements, swaps the hash function and predicate from `other`, and move-assigns the allocator from `other` if `Alloc::propagate_on_container_move_assignment` exists and `Alloc::propagate_on_container_move_assignment::value` is `true`. diff --git a/doc/unordered/unordered_node_map.adoc b/doc/unordered/unordered_node_map.adoc index 27346570..8e973e5a 100644 --- a/doc/unordered/unordered_node_map.adoc +++ b/doc/unordered/unordered_node_map.adoc @@ -95,9 +95,10 @@ namespace boost { const allocator_type& a); xref:#unordered_node_map_destructor[~unordered_node_map](); unordered_node_map& xref:#unordered_node_map_copy_assignment[operator++=++](const unordered_node_map& other); - unordered_node_map& xref:#unordered_node_map_move_assignment[operator++=++](unordered_node_map&& other) - noexcept(boost::allocator_traits::is_always_equal::value || - boost::allocator_traits::propagate_on_container_move_assignment::value); + unordered_node_map& xref:#unordered_node_map_move_assignment[operator++=++](unordered_node_map&& other) ++noexcept( + (boost::allocator_traits::is_always_equal::value || + boost::allocator_traits::propagate_on_container_move_assignment::value) && + std::is_same::value);++ unordered_node_map& xref:#unordered_node_map_initializer_list_assignment[operator++=++](std::initializer_list); allocator_type xref:#unordered_node_map_get_allocator[get_allocator]() const noexcept; @@ -648,8 +649,9 @@ Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/CopyInse ==== Move Assignment ```c++ unordered_node_map& operator=(unordered_node_map&& other) - noexcept(boost::allocator_traits::is_always_equal::value || - boost::allocator_traits::propagate_on_container_move_assignment::value); + noexcept((boost::allocator_traits::is_always_equal::value || + boost::allocator_traits::propagate_on_container_move_assignment::value) && + std::is_same::value); ``` The move assignment operator. Destroys previously existing elements, swaps the hash function and predicate from `other`, and move-assigns the allocator from `other` if `Alloc::propagate_on_container_move_assignment` exists and `Alloc::propagate_on_container_move_assignment::value` is `true`. diff --git a/doc/unordered/unordered_node_set.adoc b/doc/unordered/unordered_node_set.adoc index 11886eca..cbf00444 100644 --- a/doc/unordered/unordered_node_set.adoc +++ b/doc/unordered/unordered_node_set.adoc @@ -90,9 +90,10 @@ namespace boost { const allocator_type& a); xref:#unordered_node_set_destructor[~unordered_node_set](); unordered_node_set& xref:#unordered_node_set_copy_assignment[operator++=++](const unordered_node_set& other); - unordered_node_set& xref:#unordered_node_set_move_assignment[operator++=++](unordered_node_set&& other) - noexcept(boost::allocator_traits::is_always_equal::value || - boost::allocator_traits::propagate_on_container_move_assignment::value); + unordered_node_set& xref:#unordered_node_set_move_assignment[operator++=++](unordered_node_set&& other) ++noexcept( + (boost::allocator_traits::is_always_equal::value || + boost::allocator_traits::propagate_on_container_move_assignment::value) && + std::is_same::value);++ unordered_node_set& xref:#unordered_node_set_initializer_list_assignment[operator++=++](std::initializer_list); allocator_type xref:#unordered_node_set_get_allocator[get_allocator]() const noexcept; @@ -601,8 +602,9 @@ Requires:;; `value_type` is https://en.cppreference.com/w/cpp/named_req/CopyInse ==== Move Assignment ```c++ unordered_node_set& operator=(unordered_node_set&& other) - noexcept(boost::allocator_traits::is_always_equal::value || - boost::allocator_traits::propagate_on_container_move_assignment::value); + noexcept((boost::allocator_traits::is_always_equal::value || + boost::allocator_traits::propagate_on_container_move_assignment::value) && + std::is_same::value); ``` The move assignment operator. Destroys previously existing elements, swaps the hash function and predicate from `other`, and move-assigns the allocator from `other` if `Alloc::propagate_on_container_move_assignment` exists and `Alloc::propagate_on_container_move_assignment::value` is `true`.