1#ifndef TEST_HASH_H
2#define TEST_HASH_H
3
4#include <cstddef>
5#include <type_traits>
6
7template <class C>
8class test_hash
9    : private C
10{
11    int data_;
12public:
13    explicit test_hash(int data = 0) : data_(data) {}
14
15    std::size_t
16    operator()(typename std::add_lvalue_reference<const typename C::argument_type>::type x) const
17        {return C::operator()(x);}
18
19    bool operator==(const test_hash& c) const
20        {return data_ == c.data_;}
21};
22
23#endif  // TEST_HASH_H
24