首页 > 解决方案 > 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 编译器。

标签: c++lambdac++14

解决方案


那些不是常规的通用 lambda。为 lambda 指定模板参数列表是 C++20 的一项功能。C++14“通用 lambdas”只允许你auto在 lambda 参数中使用。


推荐阅读