summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mfbt/Span.h9
-rw-r--r--xpcom/glue/nsTArray.h6
2 files changed, 15 insertions, 0 deletions
diff --git a/mfbt/Span.h b/mfbt/Span.h
index e71e068c60..fe679aa8bf 100644
--- a/mfbt/Span.h
+++ b/mfbt/Span.h
@@ -810,6 +810,15 @@ private:
storage_type<span_details::extent_type<Extent>> storage_;
};
+template <typename T, size_t Extent>
+Span(T (&aArr)[Extent]) -> Span<T, Extent>;
+
+template <class Container>
+Span(Container&) -> Span<typename Container::value_type>;
+
+template <class Container>
+Span(const Container&) -> Span<const typename Container::value_type>;
+
// [Span.comparison], Span comparison operators
template<class ElementType, size_t FirstExtent, size_t SecondExtent>
inline bool
diff --git a/xpcom/glue/nsTArray.h b/xpcom/glue/nsTArray.h
index 03913a3765..47635de318 100644
--- a/xpcom/glue/nsTArray.h
+++ b/xpcom/glue/nsTArray.h
@@ -2466,6 +2466,12 @@ MakeSpan(const nsTArray_Impl<ElementType, TArrayAlloc>& aTArray)
return aTArray;
}
+template <typename E, class Alloc>
+Span(nsTArray_Impl<E, Alloc>&) -> Span<E>;
+
+template <typename E, class Alloc>
+Span(const nsTArray_Impl<E, Alloc>&) -> Span<const E>;
+
} // namespace mozilla
// Assert that AutoTArray doesn't have any extra padding inside.