什么时候拉姆达保证是微不足道的?何时是拉姆达琐碎?
我认为,如果它只捕获微不足道的类型或什么都不是,那么这将是微不足道的。尽管如此,我没有任何标准支持。
我的动机是将一些代码从Visual C++ 12移动到14,并发现一些静态断言在处理我认为是微不足道的lambdas时失败。
实施例:
#include <type_traits>
#include <iostream>
using namespace std;
int main()
{
auto lambda = [](){};
cout << boolalpha << is_trivially_copyable<decltype(lambda)>{} << endl;
}
这产生false
上vs140但true
在VS120和铛。由于没有gcc> = 5,我无法测试gcc。我预计这是vs140的回归,但我不确定这里的正确行为。
gcc 5.2也会产生'true':[Demo](http://coliru.stacked-crooked.com/a/a7dc4ee4e32fb70a) – Jarod42