जैसा कि मैं समझता हूं, std::nullptr_t
nullptr
से शुरू किया जा सकता है साथ ही 0
से भी शुरू किया जा सकता है। लेकिन एक ही समय में तीसरे आरंभीकरण नीचे काम नहीं करता, 5
के बावजूद है 0
रूप में एक ही प्रकार:nullptr_t प्रारंभ करते समय 0 को अन्य पूर्णांक से अलग कैसे किया जाता है?
#include <memory>
int main()
{
std::nullptr_t null1=0;
std::nullptr_t null2=nullptr;
std::nullptr_t null3=5; // error: cannot convert ‘int’ to ‘std::nullptr_t’ in initialization
}
कैसे काम करता है? अर्थात। संकलन समय पर मानक पुस्तकालय 0
5
से अलग करता है, यदि ये अक्षर टेम्पलेट तर्क नहीं हैं?
क्या कोई एक कस्टम क्लास बना सकता है जो संकलन समय पर अपने कन्स्ट्रक्टर के तर्कों को अलग करेगा, इसके लिए std::nullptr_t
का उपयोग नहीं कर रहा है?
यह प्रश्न मूल रूप से है: "' -a' और 'b-a' क्यों काम करते हैं, लेकिन'/a' 'b/a' काम नहीं करते हैं?"। क्योंकि टोकन का अर्थ इसके संदर्भ पर निर्भर करता है। – Sumurai8