storage: make deletion policy constexpr available as data member

This commit is contained in:
Michele Caini
2024-05-10 10:16:05 +02:00
parent d6d72e6b03
commit ceb4259ae3

View File

@@ -421,6 +421,8 @@ public:
using reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::reverse_iterator, reverse_iterator>>;
/*! @brief Constant extended reverse iterable storage proxy. */
using const_reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_reverse_iterator, const_reverse_iterator>>;
/*! @brief Storage deletion policy. */
static constexpr deletion_policy storage_policy{traits_type::in_place_delete};
/*! @brief Default constructor. */
basic_storage()
@@ -431,7 +433,7 @@ public:
* @param allocator The allocator to use.
*/
explicit basic_storage(const allocator_type &allocator)
: base_type{type_id<element_type>(), deletion_policy{traits_type::in_place_delete}, allocator},
: base_type{type_id<element_type>(), storage_policy, allocator},
payload{allocator} {}
/**
@@ -797,6 +799,8 @@ public:
using reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::reverse_iterator>>;
/*! @brief Constant extended reverse iterable storage proxy. */
using const_reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_reverse_iterator>>;
/*! @brief Storage deletion policy. */
static constexpr deletion_policy storage_policy{traits_type::in_place_delete};
/*! @brief Default constructor. */
basic_storage()
@@ -807,7 +811,7 @@ public:
* @param allocator The allocator to use.
*/
explicit basic_storage(const allocator_type &allocator)
: base_type{type_id<element_type>(), deletion_policy{traits_type::in_place_delete}, allocator} {}
: base_type{type_id<element_type>(), storage_policy, allocator} {}
/**
* @brief Move constructor.
@@ -999,6 +1003,8 @@ public:
using reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::reverse_iterator>>;
/*! @brief Constant extended reverse iterable storage proxy. */
using const_reverse_iterable = iterable_adaptor<internal::extended_storage_iterator<typename base_type::const_reverse_iterator>>;
/*! @brief Storage deletion policy. */
static constexpr deletion_policy storage_policy = deletion_policy::swap_only;
/*! @brief Default constructor. */
basic_storage()
@@ -1010,7 +1016,7 @@ public:
* @param allocator The allocator to use.
*/
explicit basic_storage(const allocator_type &allocator)
: base_type{type_id<void>(), deletion_policy::swap_only, allocator},
: base_type{type_id<void>(), storage_policy, allocator},
placeholder{} {}
/**