diff --git a/base/memory/weak_ptr.h b/base/memory/weak_ptr.h index 9ba5e25cfd0ada..006e1fd33fdf7c 100644 --- a/base/memory/weak_ptr.h +++ b/base/memory/weak_ptr.h @@ -161,10 +161,9 @@ class SupportsWeakPtrBase { // function that makes calling this easier. template static WeakPtr StaticAsWeakPtr(Derived* t) { - using convertible = - std::is_convertible; - static_assert(convertible::value, - "AsWeakPtr argument must inherit from SupportsWeakPtr"); + static_assert( + std::is_base_of::value, + "AsWeakPtr argument must inherit from SupportsWeakPtr"); return AsWeakPtrImpl(t, *t); } diff --git a/base/memory/weak_ptr_unittest.nc b/base/memory/weak_ptr_unittest.nc index bad1c97ef9bc4e..32deca9f17bbc6 100644 --- a/base/memory/weak_ptr_unittest.nc +++ b/base/memory/weak_ptr_unittest.nc @@ -129,7 +129,7 @@ void WontCompile() { WeakPtr ptr = AsWeakPtr(&f); } -#elif defined(NCTEST_AMBIGUOUS_ANCESTORS) // [r"fatal error: ambiguous conversion from derived class 'base::MultiplyDerivedProducer' to base class 'base::internal::SupportsWeakPtrBase':"] +#elif defined(NCTEST_AMBIGUOUS_ANCESTORS) // [r"fatal error: member 'AsWeakPtr' found in multiple base classes of different types"] void WontCompile() { MultiplyDerivedProducer f;