【发布时间】:2011-07-29 20:41:42
【问题描述】:
下面的代码给了我一个编译时错误。有人对如何解决此问题或可能导致此问题的原因有任何想法吗?
'boost::operator ==' : 4 个重载有相似的转换
typedef boost::function<void (boost::weak_ptr<std::string>)> Callback;
std::list<Callback> callbacks;
Callback func;
callbacks.remove(func); // This causes the error
【问题讨论】:
-
即使你决定使用这个,你可能想要
vector而不是list... -
@Billy 我不知道回调可能会以什么顺序被删除,所以在这种情况下最好列出一个列表。
-
在几乎所有现实世界的情况下,
vector仍然会因为缓存局部性和减少内存分配器的开销而获胜。list会变慢,除非它非常长(数万或数十万个元素)。 -
哦,好的,谢谢你的信息。
标签: c++ boost compiler-errors