aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClement Courbet <courbet@google.com>2018-01-16 09:11:20 +0000
committerClement Courbet <courbet@google.com>2018-01-16 09:11:20 +0000
commit639a3980986d65c620c3ebbc3fddba7d3103b58a (patch)
tree0ce5efcfcfca5eea58d4c5610c244de0b5f2f77d
parenta6bc5f954c0dd189ca2c10b10db3e4df2ea83c0e (diff)
downloadllvm-639a3980986d65c620c3ebbc3fddba7d3103b58a.zip
llvm-639a3980986d65c620c3ebbc3fddba7d3103b58a.tar.gz
llvm-639a3980986d65c620c3ebbc3fddba7d3103b58a.tar.bz2
Add a value_type to ArrayRef.
Summary: Not sure this needs a review or not. Erring on the safe side. Reviewers: dblaikie Differential Revision: https://reviews.llvm.org/D41666 llvm-svn: 322538
-rw-r--r--llvm/include/llvm/ADT/ArrayRef.h1
-rw-r--r--llvm/unittests/ADT/ArrayRefTest.cpp8
2 files changed, 9 insertions, 0 deletions
diff --git a/llvm/include/llvm/ADT/ArrayRef.h b/llvm/include/llvm/ADT/ArrayRef.h
index 5f7a769..b5795c6 100644
--- a/llvm/include/llvm/ADT/ArrayRef.h
+++ b/llvm/include/llvm/ADT/ArrayRef.h
@@ -45,6 +45,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.
diff --git a/llvm/unittests/ADT/ArrayRefTest.cpp b/llvm/unittests/ADT/ArrayRefTest.cpp
index 4694ff1..8498518 100644
--- a/llvm/unittests/ADT/ArrayRefTest.cpp
+++ b/llvm/unittests/ADT/ArrayRefTest.cpp
@@ -52,6 +52,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) {