From 12b839523c6188b8a4ca730ee4e8282ece9b630e Mon Sep 17 00:00:00 2001 From: Clement Courbet Date: Wed, 23 Jan 2019 14:20:59 +0000 Subject: [PATCH] Re-land rL322538 "Add a value_type to ArrayRef." git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@351954 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/ADT/ArrayRef.h | 1 + unittests/ADT/ArrayRefTest.cpp | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/include/llvm/ADT/ArrayRef.h b/include/llvm/ADT/ArrayRef.h index 75bb7d690cc..070aec224b8 100644 --- a/include/llvm/ADT/ArrayRef.h +++ b/include/llvm/ADT/ArrayRef.h @@ -44,6 +44,7 @@ namespace llvm { using const_iterator = const T *; using size_type = size_t; using reverse_iterator = std::reverse_iterator; + using value_type = typename std::remove_cv::type; private: /// The start of the array, in an external buffer. diff --git a/unittests/ADT/ArrayRefTest.cpp b/unittests/ADT/ArrayRefTest.cpp index a5609f89ff9..0407fb41ea5 100644 --- a/unittests/ADT/ArrayRefTest.cpp +++ b/unittests/ADT/ArrayRefTest.cpp @@ -51,6 +51,14 @@ static_assert( "Assigning from an initializer list"); #endif +// Check Typedefs. +static_assert( + std::is_same::value_type, int>::value, + "erroneous value_type"); +static_assert( + std::is_same::value_type, int>::value, + "erroneous value_type"); + namespace { TEST(ArrayRefTest, AllocatorCopy) { -- 2.50.1