Saya tidak mengerti satu penggunaan khusus usus besar.
Saya menemukannya di buku The C ++ Programming Language oleh Bjarne Stroustrup, edisi ke-4, bagian 11.4.4 "Telepon dan Kembali", halaman 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
}
Usus besar yang membingungkan muncul di baris 7, dalam pernyataan return 1 : 2 . Saya tidak tahu apa itu. Ini bukan label atau operator ternary.
Sepertinya operator ternary kondisional tanpa anggota pertama (dan tanpa ?), tetapi dalam kasus itu saya tidak mengerti bagaimana itu bisa bekerja tanpa syarat.