【发布时间】:2016-05-19 09:22:34
【问题描述】:
我偶然发现了以下 lambda 语法,但我不明白:
#include <iostream>
template<typename Callback>
void do_it(Callback callback) {
callback();
}
template<typename T>
void p() {
std::cout << __PRETTY_FUNCTION__ << std::endl;
}
int main() {
auto a = <:&:> { };
p<decltype(a)>();
do_it(<:&:> { std::cout << "Hello" << std::endl; }); //this
}
上面的程序产生一个输出:
void p() [with T = main()::__lambda0]
Hello
你能解释一下,<:&:> {/* ... */} 是什么意思吗?是否可以通过这种方式声明一个带参数的 lambda?
【问题讨论】: