我最近读了一些这样的 C++ 代码:
setData(total, &user, ^() {
struct dst_t to = {ip, port};
sendData(to, data);
});
getData(total, ^{
recvData(data, NULL);
});
没见过
^() {}
也不是
^{}
.他们的意思是什么?某种匿名函数?
请您参考如下方法:
很难找到重复的 ^() {}
符号,所以我会发布一个答案。
这些是“块”,它是一个 clang 编译器扩展,可以创建类似 lambda 的闭包。
更多信息请访问 wiki并在 clangs Language Specification for Blocks .
当参数列表为空时,(void)
可以省略,^ { recvData(data, NULL); }
与 ^ void (void) { recvData(data, NULL); }
相同.