45 #ifndef ABSL_CONTAINER_INTERNAL_HASH_FUNCTION_DEFAULTS_H_ 46 #define ABSL_CONTAINER_INTERNAL_HASH_FUNCTION_DEFAULTS_H_ 52 #include <type_traits> 59 namespace container_internal {
62 template <
class T,
class E =
void>
65 using Eq = std::equal_to<T>;
104 template <
class A,
class B>
106 return HashEq::ToPtr(a) == HashEq::ToPtr(b);
112 template <
class U,
class D>
113 static const T*
ToPtr(
const std::unique_ptr<U, D>&
ptr) {
117 static const T*
ToPtr(
const std::shared_ptr<U>&
ptr) {
122 template <
class T,
class D>
144 #endif // ABSL_CONTAINER_INTERNAL_HASH_FUNCTION_DEFAULTS_H_
static const T * ToPtr(const std::shared_ptr< U > &ptr)
static const T * ToPtr(const T *ptr)
typename container_internal::HashEq< T >::Hash hash_default_hash
static const T * ToPtr(const std::unique_ptr< U, D > &ptr)
size_t operator()(absl::string_view v) const
size_t operator()(const U &ptr) const
bool operator()(absl::string_view lhs, absl::string_view rhs) const
typename container_internal::HashEq< T >::Eq hash_default_eq
bool operator()(const A &a, const B &b) const