2016-06-20 23 views

回答

77

第一個是沒有參數列表和後續調用的lambda。 []{}相當於[](){}因此整個線相當於

[](){}(); 

第二個是一對大括號,其引入,然後立即關閉範圍的,隨後用無參數列表中的未使用的λ定義:

{ 
    // empty scope 
} 
[]{}; // lambda 

您可以參考http://en.cppreference.com/w/cpp/language/lambda對拉姆達定義語法的變化。

40
  • 這一個是λ呼叫

    []{}(); 
    

    它相當於

    [](){}(); 
    
  • 第二個是一個空的範圍,接着進行的(未使用)的λ。

Parens對於不帶參數的lambda是可選的。