C++ meaning of [ ]

C++ meaning of [ ]

本文关键字:of meaning C++      更新时间:2023-10-16

这是boosts asio的示例。这是什么意思?为什么[]?

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

它是用于创建函数作为表达式

的lambda表达式

[]是捕获列表

可以通过以下方式传递符号列表:

  • [a,& b]在a被值捕获和b通过参考捕获。
  • [this]按值捕获该指针
  • [&]通过参考
  • 捕获lambda正文中提到的所有自动变量
  • [=]捕获lambda正文中提到的所有自动变量
  • []什么都没有捕获

它是lambda表达式的一部分。在这里查找更多信息。