"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > `if` कथनों से परे: स्पष्ट `bool` रूपांतरण वाले प्रकार को कास्टिंग के बिना और कहाँ उपयोग किया जा सकता है?

`if` कथनों से परे: स्पष्ट `bool` रूपांतरण वाले प्रकार को कास्टिंग के बिना और कहाँ उपयोग किया जा सकता है?

2024-11-23 को प्रकाशित
ब्राउज़ करें:905

Beyond `if` Statements: Where Else Can a Type with an Explicit `bool` Conversion Be Used Without Casting?

बूल में प्रासंगिक रूपांतरण बिना कास्ट के स्वीकृत

आपकी कक्षा बूल में एक स्पष्ट रूपांतरण को परिभाषित करती है, जिससे आप सीधे सशर्त बयानों में इसके उदाहरण 'टी' का उपयोग कर सकते हैं। हालाँकि, यह स्पष्ट रूपांतरण सवाल खड़ा करता है: 'टी' को कास्ट के बिना बूल के रूप में और कहाँ इस्तेमाल किया जा सकता है?

प्रासंगिक रूपांतरण परिदृश्य

सी मानक चार निर्दिष्ट करता है मुख्य परिदृश्य जहां किसी मान को प्रासंगिक रूप से परिवर्तित किया जा सकता है बूल:

कथन:

  • if, while, for, do-while कथन

    if (t)
      /* statement */;

अभिव्यक्तियाँ:

  • निषेध (!), तार्किक और (&&), तार्किक या (||), टर्नरी ऑपरेटर (?)

    !t
    t && t2

संकलन-समय परीक्षण:

  • static_assert, noexcept, स्पष्ट, यदि constexpr (constexpr रूपांतरण की आवश्यकता है) ऑपरेटर)

    static_assert(t);
    noexcept(t)

एल्गोरिदम और अवधारणाएं:

  • STL एल्गोरिदम में NullablePointer, विधेय या तुलनित्र तर्क

    NullablePointer T
    std::remove_if(first, last, [&](auto){ return t; });

अतिरिक्त नोट्स:

  • संकलन-समय परीक्षणों में 0 और 1 के अलावा अन्य पूर्णांकों से रूपांतरण को सीमित करने की अनुमति नहीं है (सी 26) आगे)।
  • कॉन्स्ट और नॉन-कॉन्स्ट कन्वर्जन ऑपरेटरों को मिलाने से भ्रम पैदा हो सकता है।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3