क्या किसी को पता है कि इट्रीम ऑब्जेक्ट को बूल अभिव्यक्ति के रूप में क्यों उपयोग किया जा सकता है? उदाहरण के लिए:क्यों आईट्रीम ऑब्जेक्ट को बूल अभिव्यक्ति के रूप में उपयोग किया जा सकता है?
ifstream input("tmp");
int iValue;
while (input >> iValue)
//do something;
यहां input >> iValue
ifstream ऑब्जेक्ट का संदर्भ देता है। मैं जानना चाहता हूं कि इस वस्तु का उपयोग बूल अभिव्यक्ति के रूप में क्यों किया जा सकता है।
मैं ifstream वर्ग में देखो और इस निम्नलिखित सदस्य समारोह के कारण हो सकता है कि लगता है:
operator void * () const;
इस समारोह के बारे में विस्तार के लिए here देखें।
यदि यह है, तो क्या कोई मुझे इस समारोह को समझा सकता है? इस फ़ंक्शन का प्रोटोटाइप सामान्य ऑपरेटर ओवरलोड घोषणा से अलग है। इस समारोह का रिटर्न प्रकार क्या है?
यदि यह नहीं है, तो क्या कारण है कि ifstream ऑब्जेक्ट को बूल अभिव्यक्ति के रूप में उपयोग किया जा सकता है?
आपकी मदद के लिए तत्पर हैं!
चेंग
खैर एक सीधे आगे जवाब होने के बावजूद सवाल पूछा था। –
चूंकि सी ++ 11 वास्तव में 'स्पष्ट ऑपरेटर बूल() ' –