[问题] 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