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

标签 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();
        }           
    });
}

最佳答案

我想您应该按值捕获它并进行更改:

[this]

到:

[this, seq_msg]

关于C++ 将参数传递给 lambda 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44826961/

相关文章:

c++ - 无法解析符号 vector

c++ - 无法让 ifstream 在 XCode 中工作

c++ - lambda 作为模板参数访问 'this' 指针?

c# - 使用 lambda 运算符创建斐波那契数列

用于 LINQ 静态方法的 C++/CLI Lambda 选择器

c++ - 在模板特化的情况下,是否允许编译器忽略内联?

c++ - 已安装 Rcpp Rtools 但未找到错误消息 g++

c++ - 在 C++ 中强制删除 std::shared_ptr

c# - linq to 实体,where in where 子句? (里面的地方)

javascript - 将reduce() 与+ 运算符一起使用的最简洁方法是什么?