File tree 1 file changed +22
-0
lines changed
1 file changed +22
-0
lines changed Original file line number Diff line number Diff line change @@ -469,6 +469,28 @@ namespace llvm {
469
469
~OwningArrayRef () { delete[] this ->data (); }
470
470
};
471
471
472
+ // / C++17 ArrayRef deduction guides
473
+ template <typename T>
474
+ ArrayRef (const T &) -> ArrayRef<T>;
475
+ template <typename T>
476
+ ArrayRef (const T *, size_t ) -> ArrayRef<T>;
477
+ template <typename T>
478
+ ArrayRef (const T *, const T *) -> ArrayRef<T>;
479
+ template <typename T>
480
+ ArrayRef (const SmallVectorImpl<T> &Vec) -> ArrayRef<T>;
481
+ template <typename T, unsigned N>
482
+ ArrayRef (const SmallVector<T, N> &Vec) -> ArrayRef<T>;
483
+ template <typename T, typename A>
484
+ ArrayRef (const std::vector<T, A> &) -> ArrayRef<T>;
485
+ template <typename T, std::size_t N>
486
+ ArrayRef (const std::array<T, N> &Vec) -> ArrayRef<T>;
487
+ template <typename T>
488
+ ArrayRef (const ArrayRef<T> &Vec) -> ArrayRef<T>;
489
+ template <typename T>
490
+ ArrayRef (ArrayRef<T> &Vec) -> ArrayRef<T>;
491
+ template <typename T, size_t N>
492
+ ArrayRef (const T (&Arr)[N]) -> ArrayRef<T>;
493
+
472
494
// / @name ArrayRef Convenience constructors
473
495
// / @{
474
496
You can’t perform that action at this time.
0 commit comments