[llvm] r216709 - Add conversion constructor to convert ArrayRef<T*> to ArrayRef<const T*>. Reviewed with Chandler and David Blaikie.
Chandler Carruth
chandlerc at google.com
Fri Aug 29 01:58:22 PDT 2014
Any reason not to add a simple unit test so compilation problems are caught
earlier rather than later?
Also, I think LLVM would prefer 'const T *' ... because, you know, its
important. ;]
On Thu, Aug 28, 2014 at 11:01 PM, Craig Topper <craig.topper at gmail.com>
wrote:
> Author: ctopper
> Date: Fri Aug 29 01:01:43 2014
> New Revision: 216709
>
> URL: http://llvm.org/viewvc/llvm-project?rev=216709&view=rev
> Log:
> Add conversion constructor to convert ArrayRef<T*> to ArrayRef<const T*>.
> Reviewed with Chandler and David Blaikie.
>
> Modified:
> llvm/trunk/include/llvm/ADT/ArrayRef.h
>
> Modified: llvm/trunk/include/llvm/ADT/ArrayRef.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/ArrayRef.h?rev=216709&r1=216708&r2=216709&view=diff
>
> ==============================================================================
> --- llvm/trunk/include/llvm/ADT/ArrayRef.h (original)
> +++ llvm/trunk/include/llvm/ADT/ArrayRef.h Fri Aug 29 01:01:43 2014
> @@ -104,6 +104,14 @@ namespace llvm {
> Length(Vec.size()) {}
> #endif
>
> + /// Construct an ArrayRef<const T*> from ArrayRef<T*>. This uses
> SFINAE to
> + /// ensure that only ArrayRefs of pointers can be converted.
> + template <typename U>
> + ArrayRef(const ArrayRef<U *> &A,
> + typename std::enable_if<
> + std::is_convertible<U *const *, T const
> *>::value>::type* = 0)
> + : Data(A.data()), Length(A.size()) {}
> +
> /// @}
> /// @name Simple Operations
> /// @{
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140829/5ecf0741/attachment.html>
More information about the llvm-commits
mailing list