看到C++的编译器是怎么看待你的代码的。
我们可以通过这个来看Lambda的真面目
int main()
{
[](){};
}
int main()
{
class __lambda_5_5
{
public:
inline /*constexpr */ void operator()() const
{
}
using retType_5_5 = void (*)();
inline /*constexpr */ operator retType_5_5 () const noexcept
{
return __invoke;
};
private:
static inline void __invoke()
{
}
} __lambda_5_5{};
;
}
我们可以看到lambda表达式实际上是定义了一个本地类