• Raul Tambre's avatar
    flat_tree: Disambiguate base::as_const() · ec1dd37f
    Raul Tambre authored
    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}
    ec1dd37f
flat_tree.h 33.6 KB