Учитывая тот факт, что вы пометили свой Q с C ++ 14, я опубликую свой ответ с std::function
s вместо указателей на функции. Вы можете написать свой класс C
следующим образом:
using hash_t = std::function<size_t(const struct MyStruct &t1)>;
using comp_t = std::function<bool(const struct MyStruct &t1, const struct MyStruct &t2)>;
class C
{
private:
std::unordered_map<struct MyStruct, int, hash_t, comp_t> map;
public:
C(int bucket_size, hash_t hasher, comp_t comper) :
map(bucket_size, hasher, comper)
{
}
};
, а затем создать экземпляр класса с необходимыми параметрами. Смотрите live демо здесь.