diff --git a/include/cuco/detail/extent/extent.inl b/include/cuco/detail/extent/extent.inl index 63faeaab2..039f7686b 100644 --- a/include/cuco/detail/extent/extent.inl +++ b/include/cuco/detail/extent/extent.inl @@ -10,7 +10,6 @@ #include #include #include -#include #include @@ -57,65 +56,22 @@ constexpr std::uint64_t normalize_extent(SizeType size) } // namespace detail template -struct valid_extent { - using value_type = SizeType; ///< Extent value type +class valid_extent : public extent { + using base_type = extent; - __host__ __device__ constexpr value_type value() const noexcept { return N; } - __host__ __device__ explicit constexpr operator value_type() const noexcept { return value(); } + public: + using value_type = typename base_type::value_type; - private: - __host__ __device__ explicit constexpr valid_extent() noexcept {} - __host__ __device__ explicit constexpr valid_extent(SizeType) noexcept {} - - // Friend declarations for all make_valid_extent overloads - template - friend auto constexpr make_valid_extent(extent ext); - - template - friend auto constexpr make_valid_extent(extent ext); - - template