दिलचस्प पोस्ट
समाशोधन NSUserDefaults जावास्क्रिप्ट: पारित वैरिएबल का तर्क मान और नाम प्राप्त करें एक दृश्य की पूर्ण स्थिति सेट करें Git पुल त्रुटि: अस्थायी sha1 फ़ाइल नाम बनाने में असमर्थ क्या यह सच है कि उत्पादन कोड पर एनएसएलॉग () का उपयोग नहीं करना चाहिए? हमें फैक्ट्री डिजाइन पैटर्न की आवश्यकता क्यों है? कैसे PHP का उपयोग कर एक पूरा फ़ोल्डर ज़िप करने के लिए विंडोज सर्विस डिबग करने का आसान तरीका ActionItem के लिए एनिमेटेड आइकन किसी दी गई सूची से लगातार आइटम के सभी जोड़ों को बदलना जावा में स्विंग जीयूआई के लिए पृष्ठभूमि के रूप में एक छवि कैसे सेट करें? जावास्क्रिप्ट में बड़ी संख्या के लिए वैज्ञानिक संकेतन से कैसे बचें? दिनांक प्रारूप में कनवर्ट करें yyyy-mm-dd => dd-mm-yyyy <में अंतर क्या है <? सुपर ई> और <? ई विस्तारित? जीएसएम एसएम 5100 बी सीएमईआरआर: 4 त्रुटि

सी एक्सटेंशन: <? और>? ऑपरेटरों

मैंने देखा कि कुछ बिंदु पर <? और >? जीसीसी में ऑपरेटर मैं इनके जीसीसी 4.5 के तहत कैसे उपयोग कर सकता हूं? क्या उन्हें हटा दिया गया है, और यदि हां, तो कब?

 Offset block_count = (cpfs->geo.block_size - block_offset) <? count; cpfs.c:473: error: expected expression before '?' token 

वेब के समाधान से एकत्रित समाधान "सी एक्सटेंशन: <? और>? ऑपरेटरों"

हाल ही के मैनुअल कहते हैं :

जी + + न्यूनतम और अधिकतम ऑपरेटरों (' <? ' और ' >? ') और उनके यौगिक रूप (' <?= ') और ' >?= ') को बहिष्कृत कर दिया गया है और अब G ++ से निकाल दिए गए हैं इन ऑपरेटरों का उपयोग कर कोड को संशोधित किया जाना चाहिए ताकि std::min और std::max उपयोग करें।

पिछले दस्तावेजों की एक त्वरित खोज से पता चलता है कि उन्हें संस्करण 4.0 (3.4.6 में शामिल किया गया था, 4.0.4 नहीं)।

g++ पहले पुनरावृत्त (सी कंपाइलर नहीं) ने इन ऑपरेटरों को आपको न्यूनतम या अधिकतम मूल्य देने के लिए इस्तेमाल किया था लेकिन वे लंबे समय से std::min और std::max पक्ष में पदावनत रहे हैं

असल में, वे (या a या b के दोहरे मूल्यांकन की संभावना के बिना ) समान हैं:

 a <? b --> (a < b) ? a : b a >? b --> (a > b) ? a : b 

उन्हें बदलने के मामले में (और आपको वास्तव में उन्हें बदलना चाहिए ), आप ऐसा कुछ उपयोग कर सकते हैं:

 Offset block_count = cpfs->geo.block_size - block_offset; if (block_count > count) block_count = count; 

या std::min का उपयोग कर समकक्ष

मैं सी / सी ++ एक्सटेंशन के उपयोग के एक बड़े प्रशंसक नहीं हूं (विशेष रूप से जिन्हें हटा दिया गया है और / या हटा दिया गया है) क्योंकि वे मुझे भाषा के विशिष्ट कार्यान्वयन के लिए बाँधते हैं।

आपको एक गैर-मानक एक्सटेंशन का उपयोग कभी नहीं करना चाहिए जहां एक बिल्कुल पर्याप्त मानक विधि उपलब्ध है।