¿Cuál es el tipo de nullptr?
La Norma establece quenullptr
es un puntero literal de tipostd::nullptr_t
(2.14.7). Y 18.2p9 definenullptr_t
por
namespace std {
typedef decltype(nullptr) nullptr_t;
}
Por 7.1.6.2p4decltype(nullptr)
es el tipo de expresiónnullptr
, que es por definiciónstd::nullptr_t
(desde la expresiónnullptr
es un prvalue). Sustituyendo eso en la definición denullptr_t
resultados en
typedef nullptr_t nullptr_t
Por otro lado, un especificador typedef no introduce un nuevo tipo, es solo un nombre para otro tipo existente. Entonces, ¿qué es exactamentenullptr_t
? No soy capaz de comprender estas definiciones.