हालांकि इस तरह कोड लिखना संभव है, यह कुछ हद तक अजीब हो सकता है।
struct T {
bool check() const;
void fix();
};
अब आप struct में सब कुछ के माध्यम से पुनरावृति करने के लिए और चलाने के लिए उस पर जांच करें और फोन को ठीक करता है, तो जांच झूठे रिटर्न चाहते हैं: एक से थोड़ा अधिक यथार्थवादी USECASE यदि आप इस प्रकार एक struct T
है किया जाएगा। ऐसा करने का सरल तरीका
for (list<T>::iterator it = mylist.begin(); it < mylist.end(); ++it)
if (!it->check())
it->fix();
आइए दिखाएं कि आप इसे यथासंभव कम से कम लिखना चाहते हैं। fix()
लौटने का मतलब है कि आप इसे केवल स्थिति में नहीं डाल सकते हैं। हालांकि, अल्पविराम ऑपरेटर का उपयोग आप इस के आसपास मिल सकती है:
for (auto it = mylist.begin(); it != mylist.end() && (it->check() || (it->fix(), true)); ++it);
मैं एक विशेष रूप से अच्छे कारण के बिना इसका इस्तेमाल नहीं होगा, लेकिन यह आप के लिए एक शर्त है, जो सुविधाजनक हो सकता है से किसी भी समारोह कॉल करने की अनुमति देता है।
स्रोत
2011-11-16 11:35:17
इसे अल्पविराम ऑपरेटर कहा जाता है: http://www.cplusplus.com/doc/tutorial/operators/। –
यह एक उत्तर होना चाहिए, एक टिप्पणी नहीं। – Mysticial
बेशक, यहां उदाहरण सी ++ है, सी नहीं। :-) – ibid