[](){};
我有一個模板類,它包含這樣的拉姆達。由於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已經刪除了默認的構造函數。 –