35 typedef std::tuple<int, Class*> OpUnaryKey;
39 std::size_t operator()(
const OpUnaryKey& key)
const {
41 std::size_t h1 = std::hash<int>()(
static_cast<int>(std::get<0>(key)));
42 std::size_t h2 = std::hash<const void*>()(std::get<1>(key));
44 return h1 ^ (h2 << 1);
47 typedef std::unordered_map<OpUnaryKey, void*, OpUnaryKeyHash> OpUnaryMap;
54 auto key = OpUnaryKey{
static_cast<int>(op), type};
55 auto it = map_.find(key);
61 void regFunc(EOpUnaryType op, Class* type,
void* func)
63 map_[OpUnaryKey{
static_cast<int>(op), type}] = func;