From 95f7e2d2fd4428bfecf269f216ee20a4b749a18e Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Fri, 29 Aug 2014 06:01:43 +0000 Subject: [PATCH] Add conversion constructor to convert ArrayRef to ArrayRef. Reviewed with Chandler and David Blaikie. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216709 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/ADT/ArrayRef.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/include/llvm/ADT/ArrayRef.h b/include/llvm/ADT/ArrayRef.h index 0351cf5bb4c..8c14a423c8f 100644 --- a/include/llvm/ADT/ArrayRef.h +++ b/include/llvm/ADT/ArrayRef.h @@ -104,6 +104,14 @@ namespace llvm { Length(Vec.size()) {} #endif + /// Construct an ArrayRef from ArrayRef. This uses SFINAE to + /// ensure that only ArrayRefs of pointers can be converted. + template + ArrayRef(const ArrayRef &A, + typename std::enable_if< + std::is_convertible::value>::type* = 0) + : Data(A.data()), Length(A.size()) {} + /// @} /// @name Simple Operations /// @{ -- 2.34.1