3

我正在使用 Intel TBB Concurrent Hash Map tbb::hash_map<std::string, std::reference_wrapper<Clusters>>,我想搜索这个 hash_map 使用

tbb::concurrent_hash_map<std::string, std::reference_wrapper<Clusters>>::accessor a;
if(table.find(a, operation.get().GetKey()))
{
    a->second.get().AddOperation(operation);
}

但它给了error: no matching function for call to ‘std::reference_wrapper<Clusters>::reference_wrapper(). 所以问题是reference_wrapper没有find需要的默认构造函数。有什么办法可以规避这个吗?

4

1 回答 1

1

这似乎是实现find()或其文档中的错误。要么它需要映射类型DefaultConstructible,要么它没有记录它需要它。

我不认为这是您可以解决的问题。作为一种解决方法,您可以将指针存储在映射中而不是引用包装器中。

于 2013-05-21T06:45:18.147 回答