C++将参数传递给lambda函数

Neu*_*ann 0 c++ lambda

这是我第一次在C++中使用lambda函数,我需要传递一个值来在lambda函数体内使用:

在上面的代码中我需要传递int参数seq_msg:

void do_connect(tcp::resolver::iterator endpoint_iterator, int seq_msg)
{
    boost::asio::async_connect(socket_, endpoint_iterator, [this](boost::system::error_code ec, tcp::resolver::iterator)
    {
        if (!ec)
        {
            send_message(seq_msg);

            do_read_header();
        }           
    });
}
Run Code Online (Sandbox Code Playgroud)

Edg*_*jān 6

我想你应该按价值和变化来捕捉它:

[this]
Run Code Online (Sandbox Code Playgroud)

至:

[this, seq_msg]
Run Code Online (Sandbox Code Playgroud)