Skip to content

Commit 1a68db0

Browse files
committed
Add trivially_relocatable_if_eligible and replaceable_if_eligible
1 parent 8f73e67 commit 1a68db0

12 files changed

+12
-12
lines changed

source/containers/bidirectional_linked_list.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ constexpr auto link_range(bidirectional_links * const original_first, bidirectio
5858
}
5959

6060
export template<typename T>
61-
struct bidirectional_linked_list : private lexicographical_comparison::base {
61+
struct bidirectional_linked_list replaceable_if_eligible : private lexicographical_comparison::base {
6262
using const_iterator = list_iterator<bidirectional_linked_list, bidirectional_links const, T>;
6363
using iterator = list_iterator<bidirectional_linked_list, bidirectional_links, T>;
6464

source/containers/bounded_vector.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ namespace containers {
3737
// Cannot use `array_size_type<T>` because that would not support incomplete
3838
// types.
3939
export template<typename T, array_size_type<std::byte> min_capacity, array_size_type<std::byte> max_capacity>
40-
struct [[clang::trivial_abi]] bounded_vector : private lexicographical_comparison::base {
40+
struct [[clang::trivial_abi]] bounded_vector trivially_relocatable_if_eligible replaceable_if_eligible : private lexicographical_comparison::base {
4141
template<typename U, array_size_type<std::byte> other_min_capacity, array_size_type<std::byte> other_max_capacity>
4242
friend struct bounded_vector;
4343

source/containers/dynamic_array.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ namespace containers {
3737
using namespace bounded::literal;
3838

3939
export template<typename T, typename Size = array_size_type<T>>
40-
struct [[clang::trivial_abi]] dynamic_array : private lexicographical_comparison::base {
40+
struct [[clang::trivial_abi]] dynamic_array trivially_relocatable_if_eligible replaceable_if_eligible : private lexicographical_comparison::base {
4141
static_assert(numeric_traits::min_value<Size> >= 0_bi);
4242
using size_type = Size;
4343

source/containers/forward_linked_list.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ struct forward_link {
3434
};
3535

3636
export template<typename T>
37-
struct [[clang::trivial_abi]] forward_linked_list : private lexicographical_comparison::base {
37+
struct [[clang::trivial_abi]] forward_linked_list trivially_relocatable_if_eligible replaceable_if_eligible : private lexicographical_comparison::base {
3838
using const_iterator = list_iterator<forward_linked_list, forward_link const, T>;
3939
using iterator = list_iterator<forward_linked_list, forward_link, T>;
4040

source/containers/small_buffer_optimized_vector.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ struct [[gnu::packed]] large_type {
164164
};
165165

166166
export template<typename T, std::size_t requested_small_capacity, std::size_t max_size = containers::maximum_array_size<T>>
167-
struct [[clang::trivial_abi]] small_buffer_optimized_vector : private lexicographical_comparison::base {
167+
struct [[clang::trivial_abi]] small_buffer_optimized_vector trivially_relocatable_if_eligible replaceable_if_eligible : private lexicographical_comparison::base {
168168
using size_type = small_buffer_size_type<max_size>;
169169

170170
static_assert(

source/containers/stable_vector.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ namespace containers {
1616
// `capacity_` cannot be `array_size_type<T>` because that would not support
1717
// incomplete types.
1818
export template<typename T, array_size_type<std::byte> capacity_>
19-
struct [[clang::trivial_abi]] stable_vector : private bounded_vector<T, capacity_, capacity_> {
19+
struct stable_vector : private bounded_vector<T, capacity_, capacity_> {
2020
private:
2121
using base = bounded_vector<T, capacity_, capacity_>;
2222
public:

source/containers/static_vector.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ using namespace bounded::literal;
4646
namespace containers {
4747

4848
export template<typename T, array_size_type<T> capacity_>
49-
struct [[clang::trivial_abi]] static_vector : private lexicographical_comparison::base {
49+
struct [[clang::trivial_abi]] static_vector trivially_relocatable_if_eligible replaceable_if_eligible : private lexicographical_comparison::base {
5050
static_vector() = default;
5151

5252
static_vector(static_vector &&) requires(capacity_ == 0_bi or bounded::trivially_move_constructible<T>) = default;

source/containers/uninitialized_dynamic_array.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ using namespace bounded::literal;
1919
namespace containers {
2020

2121
export template<typename T, typename Capacity>
22-
struct [[clang::trivial_abi]] uninitialized_dynamic_array {
22+
struct [[clang::trivial_abi]] uninitialized_dynamic_array trivially_relocatable_if_eligible replaceable_if_eligible {
2323
template<typename U, typename OtherCapacity>
2424
friend struct uninitialized_dynamic_array;
2525

source/containers/vector.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ namespace containers {
2121
// `max_size` cannot be `array_size_type<T>` because that would not support
2222
// incomplete types.
2323
export template<typename T, array_size_type<std::byte> max_size = numeric_traits::max_value<array_size_type<T>>>
24-
struct [[clang::trivial_abi]] vector : private bounded_vector<T, 0_bi, max_size> {
24+
struct vector : private bounded_vector<T, 0_bi, max_size> {
2525
private:
2626
using base = bounded_vector<T, 0_bi, max_size>;
2727
public:

source/tv/single_element_storage.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import std_module;
1111
namespace tv {
1212

1313
export template<typename T>
14-
union [[clang::trivial_abi]] single_element_storage {
14+
union [[clang::trivial_abi]] single_element_storage trivially_relocatable_if_eligible replaceable_if_eligible {
1515
~single_element_storage() requires bounded::trivially_destructible<T> = default;
1616
constexpr ~single_element_storage() {}
1717
T value;

0 commit comments

Comments
 (0)