mSensors->getSensorsList([&](const auto &list) {...});
代码里出现 [], [&] 看不懂是什么意思?
C++ lambda表达式与函数对象
Sensors::getSensorsList的参数是个函数
Return<void> Sensors::getSensorsList(getSensorsList_cb _hidl_cb) {
sensor_t const *list;
size_t count = mSensorModule->get_sensors_list(mSensorModule, &list);
hidl_vec<SensorInfo> out;
out.resize(count);
for (size_t i = 0; i < count; ++i) {
const sensor_t *src = &list[i];
SensorInfo *dst = &out[i];
convertFromSensor(*src, dst);
}
_hidl_cb(out);
return Void();
}
通过匿名函数直接赋值函数参数
mSensors->getSensorsList([&](const auto &list) {});
- []:默认不捕获任何变量;
- [&]:默认以引用捕获所有变量;