समारोह को ध्यान में रखते:निहित टेम्पलेट प्रकार एक नलप्टर से निकाला गया?
template <class T> void f(const T* const ptr);
f(nullptr)
के लिए T
क्या है?
समारोह को ध्यान में रखते:निहित टेम्पलेट प्रकार एक नलप्टर से निकाला गया?
template <class T> void f(const T* const ptr);
f(nullptr)
के लिए T
क्या है?
मुझे इसका जवाब देना होगा क्योंकि कोई भी नहीं है। § 2.14.7/1 (जोर मेरा):
पॉइंटर शाब्दिक कीवर्ड नलप्टर है। यह std :: nullptr_t प्रकार का एक प्रबुद्ध है। [नोट: std :: nullptr_t एक विशिष्ट प्रकार है जो है न तो एक सूचक प्रकार और न ही सदस्य प्रकार के सूचक; बल्कि, इस प्रकार का एक मूल्य एक शून्य सूचक स्थिर है और इसे शून्य सूचक मान या शून्य सदस्य सूचक मान में परिवर्तित किया जा सकता है।
T *
std::nullptr_t
होना चाहिए था और std::nullptr_t
के बाद से नहीं एक सूचक प्रकार, यह संभव नहीं है। जीसीसी 4.7.2 पर nullptr
के साथ इसे कॉल करने का प्रयास करने से यह संकेत मिलता है कि यह f(std::nullptr_t)
पर कॉल करने का प्रयास कर रहा था, लेकिन केवल f(const T *)
था, जो इस तथ्य से सहमत है कि std::nullptr_t
T *
नहीं है।