Commit ec1dd37f authored by Raul Tambre's avatar Raul Tambre Committed by Commit Bot

flat_tree: Disambiguate base::as_const()

In file included from ../../base/profiler/module_cache.cc:5:
In file included from ../..\base/profiler/module_cache.h:14:
In file included from ../..\base/containers/flat_set.h:10:
../..\base/containers/flat_tree.h(788,24): error: call to 'as_const' is ambiguous
  return const_cast_it(as_const(*this).find(key));
                       ^~~~~~~~
../../base/profiler/module_cache.cc(36,58): note: in instantiation of function template specialization 'base::internal::flat_tree<std::__1::unique_ptr<const base::ModuleCache::Module, std::__1::default_delete<const base::ModuleCache::Module> >, std::__1::unique_ptr<const base::ModuleCache::Module, std::__1::default_delete<const base::ModuleCache::Module> >, base::internal::GetKeyFromValueIdentity<std::__1::unique_ptr<const base::ModuleCache::Module, std::__1::default_delete<const base::ModuleCache::Module> > >, base::ModuleCache::ModuleAndAddressCompare>::find<unsigned long long>' requested here
  const auto non_native_module_loc = non_native_modules_.find(address);
                                                         ^
C:\Google\chromium\src\out\release\..\..\buildtools\third_party\libc++\trunk\include\utility(275,50): note: candidate function [with _Tp = base::internal::flat_tree<std::__1::unique_ptr<const base::ModuleCache::Module, std::__1::default_delete<const base::ModuleCache::Module> >, std::__1::unique_ptr<const base::ModuleCache::Module, std::__1::default_delete<const base::ModuleCache::Module> >, base::internal::GetKeyFromValueIdentity<std::__1::unique_ptr<const base::ModuleCache::Module, std::__1::default_delete<const base::ModuleCache::Module> > >, base::ModuleCache::ModuleAndAddressCompare>]
template <class _Tp> constexpr add_const_t<_Tp>& as_const(_Tp& __t) noexcept { return __t; }
                                                 ^
../..\base/stl_util.h(167,32): note: candidate function [with T = base::internal::flat_tree<std::__1::unique_ptr<const base::ModuleCache::Module, std::__1::default_delete<const base::ModuleCache::Module> >, std::__1::unique_ptr<const base::ModuleCache::Module, std::__1::default_delete<const base::ModuleCache::Module> >, base::internal::GetKeyFromValueIdentity<std::__1::unique_ptr<const base::ModuleCache::Module, std::__1::default_delete<const base::ModuleCache::Module> > >, base::ModuleCache::ModuleAndAddressCompare>]
constexpr std::add_const_t<T>& as_const(T& t) noexcept {
                               ^
And others like this...

Bug: 752720
Change-Id: I1eeb9c0b1ebaf90a9df503c5b7d9f4629236d8e2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2089821
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@{#747495}
parent d93ae920
......@@ -785,7 +785,7 @@ template <class Key, class Value, class GetKeyFromValue, class KeyCompare>
template <typename K>
auto flat_tree<Key, Value, GetKeyFromValue, KeyCompare>::find(const K& key)
-> iterator {
return const_cast_it(as_const(*this).find(key));
return const_cast_it(base::as_const(*this).find(key));
}
template <class Key, class Value, class GetKeyFromValue, class KeyCompare>
......@@ -808,7 +808,7 @@ template <class Key, class Value, class GetKeyFromValue, class KeyCompare>
template <typename K>
auto flat_tree<Key, Value, GetKeyFromValue, KeyCompare>::equal_range(
const K& key) -> std::pair<iterator, iterator> {
auto res = as_const(*this).equal_range(key);
auto res = base::as_const(*this).equal_range(key);
return {const_cast_it(res.first), const_cast_it(res.second)};
}
......@@ -829,7 +829,7 @@ template <class Key, class Value, class GetKeyFromValue, class KeyCompare>
template <typename K>
auto flat_tree<Key, Value, GetKeyFromValue, KeyCompare>::lower_bound(
const K& key) -> iterator {
return const_cast_it(as_const(*this).lower_bound(key));
return const_cast_it(base::as_const(*this).lower_bound(key));
}
template <class Key, class Value, class GetKeyFromValue, class KeyCompare>
......@@ -850,7 +850,7 @@ template <class Key, class Value, class GetKeyFromValue, class KeyCompare>
template <typename K>
auto flat_tree<Key, Value, GetKeyFromValue, KeyCompare>::upper_bound(
const K& key) -> iterator {
return const_cast_it(as_const(*this).upper_bound(key));
return const_cast_it(base::as_const(*this).upper_bound(key));
}
template <class Key, class Value, class GetKeyFromValue, class KeyCompare>
......
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