C++的含义[]

deW*_*eW1 5 c++ boost boost-asio

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

acceptor_.async_accept(socket_,
    [this](boost::system::error_code ec)
Run Code Online (Sandbox Code Playgroud)

Rah*_*thi 5

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

[] 是捕获列表

符号列表可以如下传递:

  • [a,&b]其中a按值捕获,b通过引用捕获.
  • [this]按值捕获this指针
  • [&]通过引用捕获lambda体中提到的所有自动变量
  • [=]按值捕获lambda正文中提到的所有自动变量
  • []什么也没捕捉到