2013-03-03 3 views

Répondre

5

je dois répondre à cela avec n'y en a pas. De § 2.14.7/1 (Souligné par l'auteur):

Le pointeur littéral est le nullptr mot-clé. C'est une prvalue de type std :: nullptr_t. [Note: std :: nullptr_t est un type distinct qui est ni un type de pointeur ni un pointeur vers un type de membre; à la place, une prvalue de ce type est une constante de pointeur NULL et peut être convertie en une valeur de pointeur NULL ou une valeur de pointeur de membre NULL.

T * Il faut être std::nullptr_t et depuis std::nullptr_t est pas un type de pointeur, ce n'est pas possible. Essayer de l'appeler avec nullptr sur GCC 4.7.2 donne une erreur indiquant qu'il essayait d'appeler f(std::nullptr_t), mais seulement f(const T *), ce qui concorde avec le fait qu'un std::nullptr_t n'est pas un T *.

Questions connexes