ฉันไม่เข้าใจการใช้โคลอนหนึ่งครั้ง
ฉันพบมันในหนังสือภาษา C ++ Programming Languageโดย Bjarne Stroustrup, 4th edition, ส่วน 11.4.4 "การโทรและส่งคืน", หน้า 297:
void g(double y)
{
[&]{ f(y); } // return type is void
auto z1 = [=](int x){ return x+y; } // return type is double
auto z2 = [=,y]{ if (y) return 1; else return 2; } // error: body too complicated
// for return type deduction
auto z3 =[y]() { return 1 : 2; } // return type is int
auto z4 = [=,y]()−>int { if (y) return 1; else return 2; } // OK: explicit return type
}
ลำไส้ใหญ่สับสนปรากฏบนเส้น 7 return 1 : 2
ในคำสั่ง ฉันไม่รู้ว่ามันจะเป็นอะไร มันไม่ได้เป็นผู้ประกอบการฉลากหรือประกอบไปด้วย
ดูเหมือนว่าผู้ประกอบการที่มีเงื่อนไขโดยไม่มีสมาชิกคนแรก (และไม่มี?
) แต่ในกรณีนั้นฉันไม่เข้าใจว่ามันจะทำงานได้อย่างไรโดยไม่มีเงื่อนไข