我正在尝试使用TBB concurrent_hash_map容器。在example之后,表明我需要3个类型参数(模板参数),键和值类型以及特征类型HashCompare。在this链接中,它表示HashCompare具有基本类型的默认值。
然而,当尝试以两种方式(2或3个模板参数)中的任何一种方式使用它时,我收到关于“模板参数太少,预期4”的错误 - 并且实际上在挖掘代码时,唯一的定义是我能找到的头文件中的concurrent_hash_map有四个参数:
class concurrent_hash_map<Key,T,HashCompare,Allocator>
我错过了什么,这个例子过时了吗?
答案 0 :(得分:2)
在最后两个参数的默认值中有另一个声明。确保包含必要的头文件:
#include <tbb/concurrent_hash_map.h>
在我的TBB版本中,该文件包含:
template<typename Key, typename T, typename HashCompare = tbb_hash_compare<Key>, typename A = tbb_allocator<std::pair<Key, T> > >
class concurrent_hash_map;