将 boost::pool_allocator 与 boost::unordered_map 一起使用的语法是什么?
我只是在尝试使用 boost::pool 来看看它是否是我正在使用的东西的更快的分配器,但我不知道如何将它与 boost::unordered_map 一起使用:
这是一个代码片段:
unordered_map<int,int,boost::hash<int>, fast_pool_allocator<int>> theMap;
theMap[1] = 2;
这是编译错误我得到:
错误 3 错误 C2064:术语不计算为采用 2 个参数的函数 C:\Program Files (x86)\boost\boost_1_38\boost\unordered\detail\hash_table_impl.hpp 2048
如果我注释掉使用地图,例如“theMap[1] = 2”,那么编译错误就会消失。
I'm just experimenting with boost::pool to see if its a faster allocator for stuff I am working with, but I can't figure out how to use it with boost::unordered_map:
Here is a code snippet:
unordered_map<int,int,boost::hash<int>, fast_pool_allocator<int>> theMap;
theMap[1] = 2;
Here is the compile error I get:
Error 3 error C2064: term does not evaluate to a function taking 2 arguments C:\Program Files (x86)\boost\boost_1_38\boost\unordered\detail\hash_table_impl.hpp 2048
If I comment out the use of the map, e.g. "theMap[1] = 2" then the compile error goes away.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您似乎缺少模板参数 。
第四个参数是用于比较的谓词,第五个参数是分配器。
另外,但可能不是问题的原因,您需要将两个“>”分开 在模板实例化结束时。
It looks like you are missing a template parameter.
The fourth parameter is the predicate for comparison, the fifth is the allocator.
Also, but probably not the cause of your issue, you need to separate the two '>' at the end of the template instantiation.