यहाँ:'मान्य' std :: फ़ंक्शन क्या है?
http://en.cppreference.com/w/cpp/utility/functional/function
operator bool
वर्णित है: "जांचता है कि क्या संग्रहीत प्रतिदेय वस्तु मान्य है"।
संभावित रूप से एक डिफ़ॉल्ट निर्मित std::function
मान्य नहीं है लेकिन क्या यह एकमात्र मामला है?
इसके अलावा, यह कैसे जांचता है कि यह मान्य है या नहीं?
वह मामला है जहां operator()
std::bad_function_call
उठाता है ठीक उसी मामले में जहां ऑब्जेक्ट मान्य नहीं है?
ठीक है, इसलिए वैधता की जांच केवल प्रकार की जांच है और एक डिफ़ॉल्ट निर्मित 'std :: function' को कॉल करना ठीक है, जहां 'std :: bad_function_call' उठाया गया है, yup? – dpj
@ user710408: मुझे नहीं पता कि "वैधता की जांच केवल प्रकार की जांच है" से आपका क्या मतलब है। वैधता (अब परिभाषा मानते हैं कि "एक लक्ष्य है") रन-टाइम पर निर्धारित किया जाता है, टाइप-चेकिंग संकलन-समय पर होती है। और खराब फ़ंक्शन कॉल होता है, फ़ंक्शन वैध नहीं होता है (कोई लक्ष्य नहीं है), चाहे वह डिफ़ॉल्ट निर्माण से हो या स्पष्ट रूप से 'nullptr' असाइन किया जा सके। – GManNickG
मुझे नहीं लगता कि मुझे पता था कि मेरा मतलब क्या था! धन्यवाद :) – dpj