Bir kolonun belirli bir kullanımını anlamıyorum.
Bjarne Stroustrup'un C ++ Programlama Dili kitabında buldum , 4. baskı, bölüm 11.4.4 "Arama ve Geri Dönüş", sayfa 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
}
Kafa karıştırıcı kolon, açıklamada 7. satırda görünür return 1 : 2. Ne olabileceğine dair hiçbir fikrim yok. Bir etiket ya da üçlü operatör değil.
İlk üyesi olmayan (ve) olmayan bir koşullu üçlü operatör gibi görünüyor ?, ancak bu durumda bir koşul olmadan nasıl çalışabileceğini anlamıyorum.