diff --git a/src/utils/SubArray.hpp b/src/utils/SubArray.hpp
index d96bb008d7824b087b283b2e91954e37c3fda178..a5019dec9521039e420aeeef48c0439930a7840c 100644
--- a/src/utils/SubArray.hpp
+++ b/src/utils/SubArray.hpp
@@ -57,6 +57,11 @@ class [[nodiscard]] SubArray
     Assert(begin + size <= array.size(), "SubView is not contained in the source Array");
   }
 
+  PUGS_INLINE
+  explicit SubArray(DataType* const raw_array, size_t begin, size_t size)
+    : m_sub_values{raw_array + begin}, m_size{size}
+  {}
+
   PUGS_INLINE
   SubArray() = delete;