Commit 78ac5c8b authored by Raul Tambre's avatar Raul Tambre Committed by Commit Bot

checked_range: Disambiguate base::size()/data()

../../base/containers/checked_range_unittest.cc(49,17): error: call to 'size' is ambiguous
  static_assert(size(array) == range.size(), "");
                ^~~~
../../buildtools/third_party/libc++/trunk/include\iterator(1875,16): note: candidate function [with _Cont = std::__1::array<int, 5>]
constexpr auto size(const _Cont& __c)
               ^
../..\base/stl_util.h(90,16): note: candidate function [with Container = std::__1::array<int, 5>]
constexpr auto size(const Container& c) -> decltype(c.size()) {
               ^
../../base/containers/checked_range_unittest.cc(62,17): error: call to 'data' is ambiguous
  static_assert(data(il) == range.data(), "");
                ^~~~
../../buildtools/third_party/libc++/trunk/include\iterator(1932,22): note: candidate function [with _Ep = int]
constexpr const _Ep* data(initializer_list<_Ep> __il) noexcept { return __il.begin(); }
                     ^
../..\base/stl_util.h(146,20): note: candidate function [with T = int]
constexpr const T* data(std::initializer_list<T> il) noexcept {
                   ^
../../base/containers/checked_range_unittest.cc(63,17): error: call to 'size' is ambiguous
  static_assert(size(il) == range.size(), "");
                ^~~~
../../buildtools/third_party/libc++/trunk/include\iterator(1875,16): note: candidate function [with _Cont = std::initializer_list<int>]
constexpr auto size(const _Cont& __c)
               ^
../..\base/stl_util.h(90,16): note: candidate function [with Container = std::initializer_list<int>]
constexpr auto size(const Container& c) -> decltype(c.size()) {
               ^
../../base/containers/checked_range_unittest.cc(164,17): error: call to 'size' is ambiguous
  static_assert(size(array) == range.size(), "");
                ^~~~
../../buildtools/third_party/libc++/trunk/include\iterator(1875,16): note: candidate function [with _Cont = std::__1::array<int, 0>]
constexpr auto size(const _Cont& __c)
               ^
../..\base/stl_util.h(90,16): note: candidate function [with Container = std::__1::array<int, 0>]
constexpr auto size(const Container& c) -> decltype(c.size()) {
               ^

Bug: 752720
Change-Id: Icac3e6118db2e2fefa288ce23386b75714d1b979
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2094295
Auto-Submit: Raul Tambre <raul@tambre.ee>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#748098}
parent 7c15d6d7
...@@ -46,7 +46,7 @@ TEST(CheckedContiguousRange, Constructor_StdArray) { ...@@ -46,7 +46,7 @@ TEST(CheckedContiguousRange, Constructor_StdArray) {
static constexpr std::array<int, 5> array = {1, 2, 3, 4, 5}; static constexpr std::array<int, 5> array = {1, 2, 3, 4, 5};
constexpr CheckedContiguousRange<const std::array<int, 5>> range(array); constexpr CheckedContiguousRange<const std::array<int, 5>> range(array);
static_assert(data(array) == range.data(), ""); static_assert(data(array) == range.data(), "");
static_assert(size(array) == range.size(), ""); static_assert(base::size(array) == range.size(), "");
} }
TEST(CheckedContiguousRange, Constructor_StringPiece) { TEST(CheckedContiguousRange, Constructor_StringPiece) {
...@@ -59,8 +59,8 @@ TEST(CheckedContiguousRange, Constructor_StringPiece) { ...@@ -59,8 +59,8 @@ TEST(CheckedContiguousRange, Constructor_StringPiece) {
TEST(CheckedContiguousRange, Constructor_InitializerList) { TEST(CheckedContiguousRange, Constructor_InitializerList) {
static constexpr std::initializer_list<int> il = {1, 2, 3, 4, 5}; static constexpr std::initializer_list<int> il = {1, 2, 3, 4, 5};
constexpr CheckedContiguousRange<const std::initializer_list<int>> range(il); constexpr CheckedContiguousRange<const std::initializer_list<int>> range(il);
static_assert(data(il) == range.data(), ""); static_assert(base::data(il) == range.data(), "");
static_assert(size(il) == range.size(), ""); static_assert(base::size(il) == range.size(), "");
} }
TEST(CheckedContiguousRange, Constructor_Copy) { TEST(CheckedContiguousRange, Constructor_Copy) {
...@@ -161,7 +161,7 @@ TEST(CheckedContiguousRange, DataSizeEmpty_Constexpr) { ...@@ -161,7 +161,7 @@ TEST(CheckedContiguousRange, DataSizeEmpty_Constexpr) {
constexpr CheckedContiguousRange<const std::array<int, 0>> range(array); constexpr CheckedContiguousRange<const std::array<int, 0>> range(array);
static_assert(data(array) == range.data(), ""); static_assert(data(array) == range.data(), "");
static_assert(data(array) == range.cdata(), ""); static_assert(data(array) == range.cdata(), "");
static_assert(size(array) == range.size(), ""); static_assert(base::size(array) == range.size(), "");
static_assert(range.empty(), ""); static_assert(range.empty(), "");
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment