From 1c00f6ed444dab15430a955e41cf155049e3cec4 Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Tue, 14 Jan 2025 00:01:55 +0100 Subject: Start work on hash_set --- asl/utility.hpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'asl/utility.hpp') diff --git a/asl/utility.hpp b/asl/utility.hpp index 4f27017..6a43852 100644 --- a/asl/utility.hpp +++ b/asl/utility.hpp @@ -37,11 +37,17 @@ constexpr U bit_cast(T value) requires (size_of == size_of) } template -T min(T a, T b) +constexpr T min(T a, T b) { return (a <= b) ? a : b; } +template +constexpr T max(T a, T b) +{ + return (a >= b) ? a : b; +} + constexpr uint64_t round_up_pow2(uint64_t v) { ASL_ASSERT(v <= 0x8000'0000'0000'0000); @@ -58,6 +64,11 @@ constexpr uint64_t round_up_pow2(uint64_t v) return v + 1; } +constexpr bool is_pow2(isize_t v) +{ + return v > 0 && ((v - 1) & v) == 0; +} + #define ASL_DELETE_COPY(T) \ T(const T&) = delete; \ T& operator=(const T&) = delete; -- cgit