আমি কোলনের একটি নির্দিষ্ট ব্যবহার বুঝতে পারি না।
আমি এটি বার্জন স্ট্রোস্ট্রুপের সি সি ++ প্রোগ্রামিং ল্যাঙ্গুয়েজ , চতুর্থ সংস্করণ, বিভাগ 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
। এটি কী হতে পারে আমার কোনও ধারণা নেই। এটি কোনও লেবেল বা টার্নারি অপারেটর নয়।
এটি প্রথম সদস্য ব্যতীত (এবং ছাড়া ?
) শর্তসাপূর্ণ ত্রিবারি অপারেটরের মতো বলে মনে হয় , তবে সেক্ষেত্রে আমি বুঝতে পারি না যে এটি একটি শর্ত ছাড়া কীভাবে কাজ করতে পারে।