7-11 可构造和可赋值的无状态的lambda表达式(C++20)
7.11 可构造和可赋值的无状态的lambda表达式
在下面的应用场景里,因为需要的模板参数是类型,因此将lambda的类型传入时,由于会创建相应的对象,而lambda表达式的默认构造函数被删除了,因此在C++20前不能使用。
auto greater = [](auto x,auto y) { return x > y;}; |
同时,lambda表达式的拷贝构造函数也被删除了,因此下面的代码在C++20前也不能使用:
auto greater = [](auto x,auto y) { return x > y;}; |
为了解决上面的问题,C++20标准允许了lambda表达式的复制和默认构造函数。
发布于