Index: webrtc/base/array_view_unittest.cc |
diff --git a/webrtc/base/array_view_unittest.cc b/webrtc/base/array_view_unittest.cc |
index 8bb1bcc4c6ce259a8d1c61c2d3618bc2594f35e5..ac46153bd022015e6946702d128197bf01c91d50 100644 |
--- a/webrtc/base/array_view_unittest.cc |
+++ b/webrtc/base/array_view_unittest.cc |
@@ -20,8 +20,45 @@ |
namespace rtc { |
namespace { |
+ |
+namespace test_has_data_and_size { |
+ |
+template <typename C, typename T> |
+using DS = internal::HasDataAndSize<C, T>; |
+ |
+template <typename DR, typename SR> |
+struct Test1 { |
+ DR data(); |
+ SR size(); |
+}; |
+static_assert(DS<Test1<int*, int>, int>::value, ""); |
+static_assert(DS<Test1<int*, int>, const int>::value, ""); |
+static_assert(DS<Test1<const int*, int>, const int>::value, ""); |
+static_assert(!DS<Test1<const int*, int>, int>::value, ""); |
+static_assert(!DS<Test1<char*, size_t>, int>::value, ""); |
+ |
+struct Test2 { |
+ int* data; |
+ size_t size; |
+}; |
+static_assert(!DS<Test2, int>::value, ""); |
+ |
+struct Test3 { |
+ int* data(); |
+}; |
+static_assert(!DS<Test3, int>::value, ""); |
+ |
+class Test4 { |
+ int* data(); |
+ size_t size(); |
+}; |
+static_assert(!DS<Test3, int>::value, ""); |
+ |
+} // namespace test_has_data_and_size |
+ |
template <typename T> |
void Call(ArrayView<T>) {} |
+ |
} // namespace |
TEST(ArrayViewTest, TestConstructFromPtrAndArray) { |