stylistic

This commit is contained in:
joaquintides
2022-10-07 10:44:28 +02:00
parent dc7b8f3ff2
commit 2057ccaeb5

View File

@ -976,28 +976,23 @@ public:
alloc_traits::propagate_on_container_move_assignment::value; alloc_traits::propagate_on_container_move_assignment::value;
/* Avoid using nested lambdas with a `this` capture as it seems to trigger /* Avoid using nested lambdas with a `this` capture as it seems to trigger
* a bug in GCC: * a bug in GCC:
* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80947 * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80947
* *
* Rather than directly attempting to manipulate the visibility of the * Rather than directly attempting to manipulate the visibility of the
* table class, it's easier to work around the bug by simply un-nesting the * table class, it's easier to work around the bug by simply un-nesting the
* lambdas * lambdas
*/ */
auto const move_element=[this](value_type* p){ auto const move_element=[this](value_type* p){
unchecked_insert(std::move(*p)); unchecked_insert(std::move(*p));
}; };
auto const elementwise_move=[&,this]{ auto const elementwise_move=[&,this]{
/* The check above is redundant: we're setting up a compile-time
* barrier so that the compiler is convinced we're not throwing
* under noexcept(true) conditions.
*/
reserve(x.size()); reserve(x.size());
BOOST_TRY{ BOOST_TRY{
/* This works because subsequent x.clear() does not depend on the /* This works because subsequent x.clear() does not depend on the
* elements' values. * elements' values.
*/ */
x.for_all_elements(move_element); x.for_all_elements(move_element);
} }
@ -1022,6 +1017,10 @@ public:
swap(ml,x.ml); swap(ml,x.ml);
} }
else if_constexpr<!alloc_traits::is_always_equal::value>( else if_constexpr<!alloc_traits::is_always_equal::value>(
/* The check above is redundant: we're setting up a compile-time
* barrier so that the compiler is convinced we're not throwing
* under noexcept(true) conditions.
*/
elementwise_move); elementwise_move);
} }
return *this; return *this;
@ -1263,8 +1262,7 @@ private:
return init_type{std::forward<T>(x)}; return init_type{std::forward<T>(x)};
} }
template< template<typename T>
typename T>
static inline auto key_from(const T& x) static inline auto key_from(const T& x)
->decltype(type_policy::extract(x)) ->decltype(type_policy::extract(x))
{ {