diff --git a/src/small_unique_ptr.hpp b/src/small_unique_ptr.hpp
index b4c3d5e..079f1c7 100644
--- a/src/small_unique_ptr.hpp
+++ b/src/small_unique_ptr.hpp
@@ -55,6 +55,16 @@ namespace detail
inline constexpr bool is_proper_base_of_v = is_proper_base_of::value;
+ template
+ struct is_complete : std::false_type {};
+
+ template
+ struct is_complete> {};
+
+ template
+ inline constexpr bool is_complete_v = is_complete::value;
+
+
inline constexpr std::size_t small_ptr_size = 64;
@@ -203,7 +213,7 @@ template
class small_unique_ptr : private detail::small_unique_ptr_base
{
public:
- static_assert(!std::is_array_v && !std::is_void_v);
+ static_assert(detail::is_complete_v && !std::is_array_v);
using element_type = T;
using pointer = T*;