刚查到,在安卓代码库里面有个例子Thermal.cpp
using ::android::hardware::interfacesEqual;
// std::vector<CallbackSetting> callbacks_;
if (std::any_of(callbacks_.begin(), callbacks_.end(), [&](const CallbackSetting &c) {
return interfacesEqual(c.callback, callback);
})) {
status.code = ThermalStatusCode::FAILURE;
status.debugMessage = "Same callback registered already";
LOG(ERROR) << status.debugMessage;
} else {
callbacks_.emplace_back(callback, filterType, type);
LOG(INFO) << "a callback has been registered to ThermalHAL, isFilter: " << filterType
<< " Type: " << android::hardware::thermal::V2_0::toString(type);
}
不是std::set,也许他们也不知道怎么比较大小?不多的话,一个一个比较是不是相等也行吧
【 在 allegro 的大作中提到: 】
: 你用什么判断两个callback相等?
--
FROM 72.199.121.*