]> granicus.if.org Git - llvm/commitdiff
Re-land rL322538 "Add a value_type to ArrayRef."
authorClement Courbet <courbet@google.com>
Wed, 23 Jan 2019 14:20:59 +0000 (14:20 +0000)
committerClement Courbet <courbet@google.com>
Wed, 23 Jan 2019 14:20:59 +0000 (14:20 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@351954 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ADT/ArrayRef.h
unittests/ADT/ArrayRefTest.cpp

index 75bb7d690cc0e95fe8857171b4342faa0fc6f9e3..070aec224b8f247cdf7b8b9f25131bc9039a0e3e 100644 (file)
@@ -44,6 +44,7 @@ namespace llvm {
     using const_iterator = const T *;
     using size_type = size_t;
     using reverse_iterator = std::reverse_iterator<iterator>;
+    using value_type = typename std::remove_cv<T>::type;
 
   private:
     /// The start of the array, in an external buffer.
index a5609f89ff95bd3ba647af3f9a6c5142dca6b205..0407fb41ea52fe13a9208791836f99d60e8eeb01 100644 (file)
@@ -51,6 +51,14 @@ static_assert(
     "Assigning from an initializer list");
 #endif
 
+// Check Typedefs.
+static_assert(
+    std::is_same<ArrayRef<int>::value_type, int>::value,
+    "erroneous value_type");
+static_assert(
+    std::is_same<ArrayRef<const int>::value_type, int>::value,
+    "erroneous value_type");
+
 namespace {
 
 TEST(ArrayRefTest, AllocatorCopy) {