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