सी ++ की आवश्यकता क्यों है कि उपयोगकर्ता द्वारा परिभाषित रूपांतरण ऑपरेटर केवल गैर स्थैतिक सदस्य हो सकता है? अन्य यूनरी ऑपरेटरों के लिए स्टैंडअलोन फ़ंक्शंस का उपयोग करने की अनुमति क्यों नहीं है? कुछ इस तरह:रूपांतरण ऑपरेटर स्टैंडअलोन फ़ंक्शन के रूप में
operator bool (const std::string& s) { return !s.empty(); }
मुझे आपकी तर्क समझ में नहीं आ रही है। आपके द्वारा दिया गया उदाहरण एक निहित रूपांतरण नहीं है। दूसरी ओर एक रूपांतरण ऑपरेटर को परिभाषित करने का मुख्य कारण अंतर्निहित रूपांतरण का उपयोग करना है। – shura
@ शूरा हां यह है। "foo" को पूरी तरह से एक स्ट्रिंग में परिवर्तित किया जा रहा है, जिसे स्पष्ट रूप से एक बूल में परिवर्तित किया जाता है। मैंने इसे स्पष्ट करने के लिए अपना उत्तर अपडेट कर दिया है। –
नील, अब मैं आपका बिंदु देखता हूं। – shura