2013-03-03 14 views

risposta

5

Dovrei rispondere con questo non ce n'è. Da § 2.14.7/1 (sottolineatura mia):

Il puntatore letterale è la parola chiave nullptr. È un valore di tipo std :: nullptr_t. [Nota: std :: nullptr_t è un tipo distinto che è né un puntatore del tipo né un puntatore al tipo di membro; piuttosto, un valore di questo tipo è una costante di puntatore nullo e può essere convertito in un valore di puntatore nullo o un valore di puntatore membro nullo.

T * avrebbe dovuto essere std::nullptr_t e dal std::nullptr_t è non un tipo di puntatore, ciò non è possibile. Cercando di chiamarlo con nullptr su GCC 4.7.2 si dà un errore che indica che stava cercando di chiamare f(std::nullptr_t), ma aveva solo f(const T *), il che concorda con il fatto che uno std::nullptr_t non è un T *.