问题标签 [generic-lambda]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1522 浏览

c++ - 模板函数与具有自动参数的命名 lambda

之间有什么区别

以及使用带有自动参数的 lambda 的 C++14 替代方案?

应该首选哪一个?

0 投票
2 回答
235 浏览

c++ - C++14 结合通用 lambda 和变量模板

我知道通用 lambdas,也知道变量模板,但是,这是做什么的?甚至允许吗?

如果允许,是否可以按预期使用?也就是说,作为f<type>(var_a, var_b)?

0 投票
1 回答
365 浏览

c++ - 何时使用函数模板而不是通用 lambda?

我可以写一个函数模板:

但在 C++14 中,我还可以创建一个通用 lambda:

里面f1我可以T直接参考。在f2中,没有T可参考的,但我可以使用以下方法获得相同的效果decltype

通用 lambda 的一个优点是我可以完美地转发它。我不能用函数模板做到这一点:

是否存在使用函数模板比​​使用通用 lambda 更好的情况?

0 投票
3 回答
1522 浏览

c++ - 找出汽车的类型

我在 C++1y 中使用通用 lambda,我经常被不知道什么是auto变量/参数的类型而感到困惑。有什么好的方法可以查出来吗?

目前我正在使用typeid(decltype(arg)).name()),但它不是很有用。@encode给出了稍微好一点的结果,但仍然很难破译它

例子:

输出

我主要想知道的是参数a lvalue ref/rvalue ref/passed by value等。

我正在使用 Xcode 5.1.1

0 投票
3 回答
5236 浏览

c++ - 这个创建元组的习语有名字吗?

Boost 邮件列表中,@LouisDionne 最近发布了以下创建类似元组的实体的巧妙技巧:

活生生的例子

聪明之处在于listlambda 将可变参数列表作为输入,并返回一个 lambda 作为输出,该输出将采用另一个 lambda 对其输入进行操作。类似地,length是一个 lambda 采用类似列表的实体,它将sizeof...向列表的原始输入参数提供可变参数运算符。运算符被包裹在一个 lambda 中,sizeof...以便它可以传递给list.

问题:这个元组创建习语有名字吗?也许来自更常用高阶函数的函数式编程语言。

0 投票
3 回答
1163 浏览

c++ - 通用 lambda:语法糖与否?

C++14 通用 lambda 是否为语言带来了真正的改进,或者它们是一种语法糖?是否存在某些情况

不能替换为

或者

?


@Kerrek SB在评论中提供了非常有趣的链接,说明了通用 lambda 的强大功能:

0 投票
5 回答
1349 浏览

c++ - 通用 lambda 的 Arity

可以通过访问非泛型 lambda 的operator().

这对于没有模板化[](int x){ return x; }的东西来说很好而且花花公子。operator()

但是,通用 lambdas 做模板,operator()并且只能访问模板的具体实例化 - 这有点问题,因为我无法手动提供模板参数,operator()因为我不知道它的元数是什么。

所以,当然,像

不起作用。

我不知道要转换成什么,也不知道要提供什么模板参数(或多少)(operator()<??>)。
任何想法如何做到这一点?

0 投票
3 回答
1232 浏览

c++ - 这个自应用阶乘函数的类型是什么?

我用 C++ 编写了一个匿名阶乘函数,并用 g++4.9.2 编译了我的代码。它运作良好。但是,我不知道我的函数的类型。

fac所以,我想知道:和的类型是self什么?如果我只是将 C++ 代码翻译成 Haskell,它不会编译,因为它涉及无限类型:

我必须围绕它定义一些递归类型的工作:

那么,为什么 g++ 能得到完全正确的fac函数类型,而 g++ 认为fac函数是什么类型呢?

0 投票
2 回答
19117 浏览

c++ - 在 Code::Blocks 中启用 `-std=c++14` 标志

我已经为 Windows 安装了 Code::Blocks 并且想要编译 C++14 代码,比如通用 lambda,但是我从codeblocks.org安装的 Code::Blocks 的二进制版本不支持 flag
-std=c++14

如何更新编译器并启用-std=c++14Code::Blocks 的标志?

0 投票
3 回答
1604 浏览

c++ - 将 SFINAE 与通用 lambda 一起使用

通用 lambda 可以利用“替换失败不是错误”规则吗?例子

是否有任何解决方法或计划将其包含在语言中?此外,由于通用 lambda 是底层的模板化函数对象,这不能完成是不是有点奇怪?