作者Dalapa (這個ID用了15個年頭)
看板C_and_CPP
標題[問題] C++ function input arg問題
時間Wed Feb 17 21:40:19 2021
開發平台(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