我有一個簡單的要求,它涉及到傳遞函數指針到另一個函數,並在那裏執行它們。 該功能如下。C++匿名函數返回值
void drawPolarCurves(Canvas &cnv, Point2 center, float (* fx)(float), float (* fy)(float));
我嘗試通過匿名函數作爲參數,如下所示。
void drawMyShape(Canvas &cnv, Point2 center, float width, float height)
{
drawPolarCurves(cnv, center,
[&width](float x)-> float { return x * width; },
[&height](float x)-> float { return x * height; }
);
}
這將產生以下的錯誤:
參數無效' 候選人有: 空隙drawPolarCurves(帆布&,POINT2,浮子()(浮動),浮子()(浮點)) '
我一遍又一遍地檢查一切似乎是正確的,包括Ubuntu上的Eclipse編譯器參數。
由於
調用代碼沒有按」 t包含匿名函數。它包含lambda表達式。 –
@ Kerrek-SB:謝謝你指出。我從未使用lambda表達式... – inam101