diff --git a/src/glow/common/array_view.hh b/src/glow/common/array_view.hh
index 7b8e49850bde2812e0ca05fc3783997fcfc2cc1e..c88e8503ccd121338212e19cb73b6f4887bca73c 100644
--- a/src/glow/common/array_view.hh
+++ b/src/glow/common/array_view.hh
@@ -94,19 +94,19 @@ private:
     size_t _size = 0;
 };
 
+namespace detail
+{
 template <class Range>
+constexpr bool can_make_array_view = convertible_to_array_view<Range, void const>;
+}
+
+template <class Range, class = std::enable_if_t<detail::can_make_array_view<Range>>>
 auto make_array_view(Range&& r)
 {
     using T = std::remove_reference_t<decltype(r.data()[0])>;
     return array_view<T>(std::forward<Range>(r));
 }
 
-namespace detail
-{
-template <class Range>
-constexpr bool can_make_array_view = convertible_to_array_view<Range, void const>;
-}
-
 template <class T>
 array_view<std::byte const> as_byte_view(T const& v)
 {