作者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://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1613569221.A.C50.html
2F:→ nh60211as: (){}() 是 lambda expression,用法在上面 02/17 21:59
3F:→ nh60211as: 另外C++ main function不能是void吧 02/17 22:00
4F:→ Dalapa: main 那是我笔误了 要返回main状态应该是强制int 02/17 22:13
5F:→ final01: c++课本没教那个吗?该丢了XD 02/18 17:58
6F:推 ko27tye: [](){...} <- 这块是lambda [](){...}() <-这样是执行 02/18 23:09
7F:→ ko27tye: 执行结果是个int 然後赋值给a 02/18 23:10
8F:推 HMKRL: a是int 但直接拿了後面lambda执行结果的值 02/21 19:28