18 #ifndef ABSL_CONTAINER_INTERNAL_HASH_POLICY_TESTING_H_ 19 #define ABSL_CONTAINER_INTERNAL_HASH_POLICY_TESTING_H_ 25 #include <type_traits> 33 namespace container_internal {
34 namespace hash_testing_internal {
36 template <
class Derived>
51 size_t id()
const {
return id_; }
67 static size_t gId = 1;
98 StatefulTestingHash> {
107 StatefulTestingEqual> {
108 template <
class T,
class U>
116 template <
class T =
int>
142 size_t id_ = (std::numeric_limits<size_t>::max)();
146 auto items(
const Map& m) -> std::vector<
147 std::pair<typename Map::key_type, typename Map::mapped_type>> {
149 std::vector<std::pair<typename Map::key_type, typename Map::mapped_type>> res;
150 res.reserve(m.size());
151 for (
const auto&
v : m) res.emplace_back(get<0>(
v), get<1>(
v));
157 -> std::vector<typename std::decay<typename Set::key_type>::type> {
158 std::vector<typename std::decay<typename Set::key_type>::type> res;
159 res.reserve(s.size());
160 for (
const auto&
v : s) res.emplace_back(
v);
175 #if (defined(__GLIBCXX__) && __GLIBCXX__ <= 20140425 ) || \ 176 ( __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 9 )) 177 #define ABSL_UNORDERED_SUPPORTS_ALLOC_CTORS 0 179 #define ABSL_UNORDERED_SUPPORTS_ALLOC_CTORS 1 182 #endif // ABSL_CONTAINER_INTERNAL_HASH_POLICY_TESTING_H_
friend H AbslHashValue(H h, const NonStandardLayout &v)
friend bool operator!=(const Alloc &a, const Alloc &b)
auto items(const Map &m) -> std::vector< std::pair< typename Map::key_type, typename Map::mapped_type >>
std::true_type propagate_on_container_swap
auto keys(const Set &s) -> std::vector< typename std::decay< typename Set::key_type >::type >
friend bool operator!=(const WithId &a, const WithId &b)
size_t operator()(const T &t) const
virtual ~NonStandardLayout()
WithId & operator=(WithId &&that)
WithId & operator=(const WithId &that)
WithId(const WithId &that)
friend bool operator==(const Alloc &a, const Alloc &b)
NonStandardLayout(std::string s)
friend bool operator==(const WithId &a, const WithId &b)
friend bool operator==(const NonStandardLayout &a, const NonStandardLayout &b)
absl::string_view get(const Cont &c)
constexpr absl::remove_reference_t< T > && move(T &&t) noexcept
bool operator()(const T &t, const U &u) const
Alloc(const Alloc< U > &that)
friend bool operator!=(const NonStandardLayout &a, const NonStandardLayout &b)