[](){};
我有一个模板类,它包含这样的拉姆达。由于lambda不包含非静态数据成员,也不包含虚函数,因此它应该是一个空类和DefaultConstructible。它只是一种可用于模板元编程的策略类。我想知道,为什么这样的类不是C++标准默认构造的。
旁注:Understanding how Lambda closure type has deleted default constructor提出了一个不同的问题,虽然标题似乎非常相似。它问如何在没有可用的默认构造函数的情况下创建一个无状态的lambda对象。我在问为什么没有可用的默认构造函数。
[This question](http:// stackoverflow。com/questions/32911729/understanding-how-lambda-closure-type-has-deleted-default-constructor)可能是相关的。 –
你会如何默认构建一个lambda? '[] {}'已经构造出一个并给你实例。 – rustyx
@rustyx像这样:'auto f =()[] {};使用f_t = decltype(f); f_t {};' - 这有效,但是因为lambda已经删除了默认的构造函数。 –