C ++的含义[]

时间:2014-03-11 13:33:03

标签: c++ boost boost-asio

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

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

2 个答案:

答案 0 :(得分:5)

用于创建函数作为表达式

lambda expression

[]是捕获列表

  

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

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

答案 1 :(得分:4)

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