【问题标题】:generic lambdas in c++14c++14 中的通用 lambda
【发布时间】:2020-07-21 20:42:12
【问题描述】:

我正在尝试在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)));
};

但是,我收到一个错误:

'

注意:我使用的是 C++14 编译器。

【问题讨论】:

标签: c++ lambda c++14


【解决方案1】:

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

【讨论】:

  • 那么我可以在 c++14 中使用什么来代替?只是一个常规的模板函数而不是 lambda?
  • @NissimLevy 一个通用 lambda,其中参数类型为 auto,或者模板函数,前提是您的 lambda 表达式没有捕获
猜你喜欢
  • 2014-10-26
  • 1970-01-01
  • 2013-06-18
  • 1970-01-01
  • 1970-01-01
  • 2015-07-17
  • 1970-01-01
相关资源
最近更新 更多