[問題] C++ function input arg問題

作者: Dalapa (這個ID用了15個年頭)   2021-02-17 21:40:19
開發平台(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. (){}() <
作者: nh60211as   2021-02-17 21:59:00
https://en.cppreference.com/w/cpp/language/lambda(){}() 是 lambda expression,用法在上面另外C++ main function不能是void吧
作者: Dalapa (這個ID用了15個年頭)   2021-02-17 22:13:00
main 那是我筆誤了 要返回main狀態應該是強制int
作者: final01 (牛頓運動定律)   2021-02-18 17:58:00
c++課本沒教那個嗎?該丟了XD
作者: ko27tye (好滋好滋)   2021-02-18 23:09:00
[](){...} <- 這塊是lambda [](){...}() <-這樣是執行執行結果是個int 然後賦值給a
作者: HMKRL (HMKRL)   2021-02-21 19:28:00
a是int 但直接拿了後面lambda執行結果的值

Links booklink

Contact Us: admin [ a t ] ucptt.com