Какой тип nullptr?
Стандарт гласит, чтоnullptr
является литералом-указателем типаstd::nullptr_t
(2.14.7). А 18.2p9 определяетnullptr_t
по
namespace std {
typedef decltype(nullptr) nullptr_t;
}
По 7.1.6.2p4decltype(nullptr)
это тип выраженияnullptr
по определениюstd::nullptr_t
(так как выражениеnullptr
это prvalue). Подставляя это в определениеnullptr_t
результаты в
typedef nullptr_t nullptr_t
С другой стороны, спецификатор typedef не вводит новый тип, это просто имя для другого существующего типа. Итак, что именноnullptr_t
? Я не в состоянии понять эти определения.