c++ - c++14 中的通用 lambda
问题描述
我正在尝试在 VS2019 中编译以下代码:
auto moveToEnd = []<typename T>(std::vector<T>& into, std::vector<T>& from)
{
into.insert(std::end(into), std::make_move_iterator(std::begin(from))
, std::make_move_iterator(std::end(from)));
};
但是,我收到一个错误:
'<' 在 lambda 正文之前跳过意外的标记/s
注意:我使用的是 C++14 编译器。
解决方案
那些不是常规的通用 lambda。为 lambda 指定模板参数列表是 C++20 的一项功能。C++14“通用 lambdas”只允许你auto
在 lambda 参数中使用。