看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): Win10 編譯器 C++17 問題(Question): 一個關於C++ function input arg問題 Void f(int a=[](){static int b=1; return b++;}()) { std::cout << a; } void main() { f(); f(); } 測試完後回饋是 12 令我不解地點有兩個 1. Input arg a 屬於甚麼? 2. (){}() <-- 這是個甚麼用法?? 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.175.152.81 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1613569221.A.C50.html
nh60211as: (){}() 是 lambda expression,用法在上面 02/17 21:59
nh60211as: 另外C++ main function不能是void吧 02/17 22:00
Dalapa: main 那是我筆誤了 要返回main狀態應該是強制int 02/17 22:13
final01: c++課本沒教那個嗎?該丟了XD 02/18 17:58
ko27tye: [](){...} <- 這塊是lambda [](){...}() <-這樣是執行 02/18 23:09
ko27tye: 執行結果是個int 然後賦值給a 02/18 23:10
HMKRL: a是int 但直接拿了後面lambda執行結果的值 02/21 19:28