From a1db1cd9e22e77041d5f1360f1d1ccdc52b86306 Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Mon, 26 May 2025 00:47:54 +0200 Subject: Implement chunked_buffer --- asl/types/array.hpp | 8 ++++---- asl/types/maybe_uninit_tests.cpp | 4 ++++ 2 files changed, 8 insertions(+), 4 deletions(-) (limited to 'asl/types') diff --git a/asl/types/array.hpp b/asl/types/array.hpp index 54c3fbe..1e722d9 100644 --- a/asl/types/array.hpp +++ b/asl/types/array.hpp @@ -12,7 +12,7 @@ namespace asl { -template +template requires (kSize > 0) struct array { @@ -20,7 +20,7 @@ struct array [[nodiscard]] constexpr bool is_empty() const { return false; } - [[nodiscard]] constexpr int64_t size() const { return kSize; } + [[nodiscard]] constexpr isize_t size() const { return kSize; } constexpr auto data(this auto&& self) { @@ -38,14 +38,14 @@ struct array return contiguous_iterator{self.data() + kSize}; } - template + template requires (kSpanSize == kSize || kSpanSize == dynamic_size) constexpr operator span() const // NOLINT(*explicit*) { return as_span(); } - template + template requires (kSpanSize == kSize || kSpanSize == dynamic_size) constexpr operator span() // NOLINT(*explicit*) { diff --git a/asl/types/maybe_uninit_tests.cpp b/asl/types/maybe_uninit_tests.cpp index a525423..a4a851b 100644 --- a/asl/types/maybe_uninit_tests.cpp +++ b/asl/types/maybe_uninit_tests.cpp @@ -10,6 +10,8 @@ static_assert(asl::size_of == asl::size_of>); static_assert(asl::align_of == asl::align_of>); #define TEST_TYPE_PROPERTIES(PRP) \ + static_assert(asl::PRP> == asl::PRP); \ + static_assert(asl::PRP> == asl::PRP); \ static_assert(asl::PRP> == asl::PRP); \ static_assert(asl::PRP> == asl::PRP); \ static_assert(asl::PRP> == asl::PRP); \ @@ -17,6 +19,8 @@ static_assert(asl::align_of == asl::align_of>); static_assert(asl::PRP> == asl::PRP); \ static_assert(asl::PRP> == asl::PRP); +// @Todo(C++26) We expect this to break once trivial unions land. +// https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3074r7.html#just-make-it-work TEST_TYPE_PROPERTIES(trivially_default_constructible); TEST_TYPE_PROPERTIES(trivially_copy_constructible); TEST_TYPE_PROPERTIES(trivially_move_constructible); -- cgit