我最近阅读了一些这样的C ++代码:
setData(total, &user, ^() {
struct dst_t to = {ip, port};
sendData(to, data);
});
getData(total, ^{
recvData(data, NULL);
});
Run Code Online (Sandbox Code Playgroud)
我从来没有见过^() {},也没有^{}。他们的意思是什么?某种匿名功能?
很难找到带有^() {}符号的重复项,所以我会发布一个答案。
这些是“块”,它是一个 clang 编译器扩展,可以创建类似 lambda 的闭包。
更多信息请参见wiki和clans Language Specific for Blocks。
当参数列表为空时,(void)可以省略, 与^ { recvData(data, NULL); }相同^ void (void) { recvData(data, NULL); }。