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.