2012-10-27 41 views
2

我已經搜索過SO和Google,但很遺憾找不到答案。我正在尋找正確的語法來爲lambda原型。我試過了:如何爲lambda函數創建原型?

int g = []() -> int; 

但是我得到錯誤。有沒有辦法對lambda進行原型設計?如果是這樣,怎麼樣?

+7

號爲什麼你需要這樣做?只需聲明一個正常的功能。 –

+0

lambda的強大之處在於,你可以定義一個函數對象(可選)從它的上下文*在callsite *處捕獲變量!對於其他用途,通常最好是聲明一個常規函數。 – Praetorian

+0

也許你正在尋找這個SO [文檔鏈接](http://stackoverflow.com/documentation/c%2b%2b/572/lambdas#t=201702110629374323036)。它非常詳細!一探究竟。 – NameRakes

回答

5

不能原型拉姆達。你可以創建一個包含lambda表達式的函數對象,但這不是原型而是定義。例如:auto f = [] (int x, int y) { return x + y; }; 您也可以聲明一個標準函數指針,其類型對應於您所需的lambda簽名。