我读了一些代码并偶然发现了这样的字符串
ConcurrentHashMap<std::pair<int, int>, int, size_t(*)(const std::pair<int, int>&)> pair_table(pair_hash);
你能帮忙解释size_t(*)(const std::pair<int, int>&)
构造的含义吗?
答案 0 :(得分:2)
从里到外阅读:
size_t(*)(const std::pair<int, int>&)
*
表示该类型是指针,然后括号表示这是一个指向函数的指针,该函数将const std::pair<int, int>&
作为参数并返回size_t
答案 1 :(得分:1)
它是一个指向函数的指针,该函数返回size_t
并以const std::pair<int, int>&
作为参数。
通常,您会在(*)
部分看到变量名称,但在实例化模板时却没有。这是什么导致了混乱?
答案 2 :(得分:1)
它是指向具有size_t
返回类型和const std::pair<int, int>&
参数的函数的函数指针。