diff --git a/absl/types/any.h b/absl/types/any.h index fe1048188..f29de0379 100644 --- a/absl/types/any.h +++ b/absl/types/any.h @@ -383,16 +383,6 @@ class any { #if ABSL_ANY_DETAIL_HAS_RTTI virtual const std::type_info& Type() const noexcept = 0; #endif // ABSL_ANY_DETAIL_HAS_RTTI - - // Note that on 64-bit (unix) systems size_t is 64-bit while int is 32-bit and - // the compiler will happily and quietly assign such a 64-bit value to a - // 32-bit integer. While a client should never do that it SHOULD still be safe, - // assuming the BSS segment doesn't span more than 4GiB. - size_t type_id() const noexcept { - static_assert(sizeof(void*) <= sizeof(size_t), - "ptr size too large for size_t"); - return reinterpret_cast(ObjTypeId()); - } }; // Hold a value of some queryable type, with an ability to Clone it. @@ -431,8 +421,7 @@ class any { } const void* GetObjTypeId() const { - return obj_ == nullptr ? any_internal::FastTypeId() - : obj_->ObjTypeId(); + return obj_ ? obj_->ObjTypeId() : any_internal::FastTypeId(); } // `absl::any` nonmember functions //