Es ist aus Wikipedia, wenn unsere Compiler c nicht unterstützen ++ 11, können wir ein von uns selbst implementieren, wie unten:Benutzerdefiniert "nullptr", aber wie versteht man die Codes?
const class nullptr_t
{
public:
template<class T>
inline operator T*() const
{ return 0; }
template<class C, class T>
inline operator T C::*() const
{ return 0; }
private:
void operator&() const;
} nullptr = {};
ich nicht die oben genannten Codes verstehen.
---------------------- Update ------------------
Entschuldigung Ich habe es nicht klar ausgedrückt.
template<class T>
inline operator T*() const
{ return 0; }
template<class C, class T>
inline operator T C::*() const
{ return 0; }
Die obigen Codes, verstehe ich nicht die Grammatik. ich noch nie diese Art von Schablonenform sehen. (Wie „Operator TC :: *()“)
Welchen Teil verstehst du nicht? –
Der Code definiert eine 'const'-Variable mit dem Namen' nullptr' vom Typ 'nullptr_t'. Die zwei impliziten Konvertierungsoperatoren ermöglichen es, daß 'nullptr' überall dort verwendbar ist, wo ein Zeiger verwendet werden kann. –