什么类型的变量包含lambda

Ste*_*nov 5 c++ lambda c++11

你能解释一下L这种背景下的哪种类型.换句话说,我可以使用什么类型的auto关键字?

int main(){
 int x=0;
 auto L = [x] (int y)->bool{
   return x>y;
 };
  return 0; 
}
Run Code Online (Sandbox Code Playgroud)

Rei*_*ica 7

在C++ 11中没有什么可以使用,而不是auto在这种情况下,这意味着完全相同的类型.那是因为每个lambda表达式的类型是唯一的,未命名的类型.引用C++ 11 5.1.2/3:

的类型的λ-表达(这也是封闭的对象的类型)是一个独特的,无名不愈合类类型-称为闭合类型 -其特性如下所述....