相关疑难解决方法(0)

std :: function的性能开销是多少?

我在论坛上听到使用std::function<>原因性能下降.这是真的吗?如果是真的,这是一个很大的性能下降?

c++ boost std

61
推荐指数
4
解决办法
3万
查看次数

Lambda闭包类型构造函数

cppreference表明,对于拉姆达闭合类型构造不同的规则。

默认构造-直到C ++ 14

ClosureType()=删除;(直到C ++ 14)

闭包类型不是默认可构造的。闭包类型的默认构造函数已删除(直到C ++ 14)否(自C ++ 14起)。

默认构造-自C ++ 14起

闭包类型没有(自C ++ 14起)默认构造函数。

默认构造-自C ++ 20起

如果未指定捕获,则闭包类型具有默认的默认构造函数。否则,它没有默认构造函数(包括捕获默认值,即使它实际上没有捕获任何内容也是如此)。

复制分配运算符-直到C ++ 20

副本分配运算符定义为已删除(并且未声明移动分配运算符)。闭包类型不是CopyAssignable。

复制分配运算符-自C ++ 20起

如果未指定捕获,则关闭类型具有默认的副本分配运算符和默认的移动分配运算符。否则,它具有已删除的副本分配运算符(包括存在捕获默认值的情况,即使它实际上没有捕获任何内容也是如此)。

规则变更的原因是什么?标准委员会是否确定了lambda封闭式构造标准的不足之处?如果是这样,那些短处是什么?

c++ lambda c++11 c++20

9
推荐指数
1
解决办法
264
查看次数

标签 统计

c++ ×2

boost ×1

c++11 ×1

c++20 ×1

lambda ×1

std ×1