'boost::operator ==':4 个重载具有类似的转换
'boost::operator ==' : 4 overloads have similar conversions
下面的代码给出了一个编译时错误。有人对如何解决这个问题或什么可能导致它有任何想法吗?
'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
当您调用std::list<T>::remove
时,它通过将其与列表中的元素进行比较来查找要删除的值。在boost::function
对象的情况下,这失败了,因为boost::function
对象不能比较。参见为什么不能比较boost::function对象与operator==或operator!=在Boost Function FAQ.
你需要以另一种方式从列表中删除对象(例如使用erase
和迭代器)。
在本例中,看起来您正在实现类似Boost的东西。图书馆的信号。你可能想用它来代替——它提供了一种注册多个回调并删除它们的方法。
相关文章:
- 当我尝试使用 sstream 和分面将 Boost Time_duration转换为字符串时,我没有得到所需的格式
- Boost buffer_cast 无法从 void* 转换为 PointerToPodType
- Boost.Spirit将表达转换为AST
- 将 boost 序列化对象的 asio::streambuf 表示转换为 Beast 的 DynamicBody req.body()
- 将"boost::tuple "转换为"boost::fusion::tuple&quo
- 用于 boost::p roperty_tree 的通用枚举转换器
- 如何将 boost::hana::map 转换为 lambda
- 如何将 boost::hana::tuple 转换为 std::变体
- 将 boost::文件系统::p ath 转换为 char?
- Boost.Hana:在 constexpr 上下文中将值元组转换为相应类型的元组
- 为什么要 boost::p roperty_tree::write_json() 将整数值转换为字符串?这是不正确的
- 如何正确地将boost::asio::buffers_iterator转换为InputIterator
- 如何将boost::asio::ip::address_v6 ip转换为2个uint64_t数字,并从2个uint 64
- 如何将 boost::beast 的响应<buffer_body>转换为响应<string_body>?
- 提取并转换 boost::p ython::list 的列表元素
- 我已经在我的运算符 [] 中使用了一个代理来隐式转换 boost::变体。如何通过运算符 [] 维护分配?
- 无法转换 boost::lambda::..到长无符号的 int
- 如何从字符串中强制转换Boost::thread::id
- 转换boost::变体类型的std::vector
- 不能转换boost::lambda::placeholder1_type