簡體   English   中英

C ++ 14使用capture-specifier在lambda函數內增加一個值

[英]C++14 increment a value inside of lambda function with capture-specifier

我的任務是編寫一個增加值的lambda函數,但我必須使用value = 0 capture-specifier。 我正在考慮以下功能:

auto lambda = [value = 0]{return ++value}

調用此函數時,每次都必須給出遞增的值。 但我知道這個實現是錯誤的,因為它是通過值傳遞的。 我怎么能用C ++ 14做到這一點?

你需要使lambda變為可變:

auto lambda = [value = 0]() mutable {return ++value;};

你不需要捕獲:

[]{ static int i=0; return ++i; }

是你所需要的全部。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM