相关疑难解决方法(0)

参数类型自动扣除和匿名lambda函数

可以说我有这些代码行;

std::vector<int> ints;
std::for_each(ints.begin(), ints.end(), [](int& val){ val = 7; });
Run Code Online (Sandbox Code Playgroud)

但是,我不想在我的lambda函数中指定参数类型,即我想写这样的东西;

std::for_each(ints.begin(), ints.end(), [](auto& val){ val = 7; });
Run Code Online (Sandbox Code Playgroud)

无论如何这可以实现吗?

(boost :: lambda不需要指定类型......)


更新:

现在我使用宏:#define _A(container) decltype(*std::begin(container))所以我可以这样做:

std::for_each(ints.begin(), ints.end(), [](_A(ints)& val){ val = 7; });
Run Code Online (Sandbox Code Playgroud)

c++ lambda c++11

34
推荐指数
2
解决办法
9437
查看次数

标签 统计

c++ ×1

c++11 ×1

lambda ×1