[英]C++ Code in function as argument
我有这个代码:
void longitudeChanged() {
Serial.println("Longitude: " + String(GpsLon.value,8));
}
在主要:
GpsLon.onUpdate(longitudeChanged);
我想做这样的事情:
GpsLon.onUpdate({
Serial.println("Longitude: " + String(GpsLon.value,8));
});
(就像我在Java脚本中做的那样!); 但这不是严格的方式。 怎么做?
TNX
埃里克
看哪,强大的lambda!
#include <iostream>
template <typename T>
void myFunction(T t) {
t();
}
int main() {
myFunction([](){ std::cout << "Hi!" << std::endl; });
}
要稍微解密一下,这里有一个细分:
[]
(捕获,现在不要太担心) ()
函数参数,在这种情况下没有)和{ ... }
(正文,就像任何其他功能)。 所以lambda部分就是这样的:
[](){ std::cout << "Hi!" << std::endl; }
这是一个lambda的另一个例子,它接受一个int并返回其值的两倍:
[](int value){ return value * 2; }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.