[]的C ++含义[重复]

Posted

技术标签:

【中文标题】[]的C ++含义[重复]【英文标题】:C++ meaning of [ ] [duplicate] 【发布时间】:2014-04-15 03:42:53 【问题描述】:

这是来自 boosts asio 的一个例子。 这是什么意思?为什么是 []?

acceptor_.async_accept(socket_,
    [this](boost::system::error_code ec)

【问题讨论】:

这是一个lambda。 它是Lambda Expression 的一部分。 【参考方案1】:

它是一个lambda expression,用于创建函数作为表达式

[]是捕获列表

可以按如下方式传递符号列表:

[a,&b] 其中 a 按值捕获,b 按引用捕获。 [this] 按值捕获 this 指针 [&] 通过引用捕获 lambda 正文中提到的所有自动变量 [=] 按值捕获 lambda 正文中提到的所有自动变量 [] 没有捕获任何内容

【讨论】:

【参考方案2】:

它是 lambda 表达式的一部分。查看here了解更多信息。

【讨论】:

以上是关于[]的C ++含义[重复]的主要内容,如果未能解决你的问题,请参考以下文章

悬空指针的含义[重复]

C ++通过引用返回本地对象[重复]

有人可以解释一下 C 中 signal() 语法的含义吗? [复制]

IL中“specialname”和“rtspecialname”的用途和含义[重复]

<??> 符号在 C#.NET 中的含义是啥? [复制]

编译错误“无法忽略空值,因为它应该是”在C编程中[重复]