Chromium Code Reviews| 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, ""); |
|
ossu
2016/09/05 09:32:27
Surely, this should be DS<Test4, int>::value!
kwiberg-webrtc
2016/09/05 09:40:18
Yes...
ossu
2016/09/05 09:50:44
Ah, so it's supposed to be false because data and
kwiberg-webrtc
2016/09/05 10:11:16
Added comments.
|
| + |
| +} // namespace test_has_data_and_size |
| + |
| template <typename T> |
| void Call(ArrayView<T>) {} |
| + |
| } // namespace |
| TEST(ArrayViewTest, TestConstructFromPtrAndArray) { |