Теперь, когда C ++ 0x почти здесь, я экспериментировал с ним, и в частности использовал nullptr.Я не смог выяснить, какие стандартные заголовочные файлы нужно включать, если нужно его использовать.
Любая помощь приветствуется.
Заголовки не требуются.Это встроенное ключевое слово (§ [lex.nullptr]).
2.14.7 Литералы указателя [lex.nullptr] pointer-literal: nullptr Литералом указателя является ключевое слово nullptr.Это значение типа std::nullptr_t.[ Примечание: std::nullptr_t - это отдельный тип, который не является ни типом указателя, ни указателем на тип члена;скорее, значение этого типа является константой нулевого указателя и может быть преобразовано в значение нулевого указателя или значение указателя нулевого элемента.Смотри 4.10 и 4.11. —endnote ]
pointer-literal: nullptr
nullptr
Литералом указателя является ключевое слово nullptr.Это значение типа std::nullptr_t.[ Примечание: std::nullptr_t - это отдельный тип, который не является ни типом указателя, ни указателем на тип члена;скорее, значение этого типа является константой нулевого указателя и может быть преобразовано в значение нулевого указателя или значение указателя нулевого элемента.Смотри 4.10 и 4.11. —endnote ]
std::nullptr_t
Однако его тип std::nullptr_t «определен» в заголовке <cstddef> (§ [support.types] / 9).
<cstddef>
nullptr_t определяется следующим образом: namespace std { typedef decltype(nullptr) nullptr_t; } Тип, для которого nullptr_t является синонимом, имеет характеристики, описанные в 3.9.1 и 4.10.[ Примечание : Хотя адрес nullptr не может быть получен, можно взять адрес другого объекта nullptr_t, который является lvalue. - конец ]
nullptr_t определяется следующим образом:
nullptr_t
namespace std { typedef decltype(nullptr) nullptr_t; }
Тип, для которого nullptr_t является синонимом, имеет характеристики, описанные в 3.9.1 и 4.10.[ Примечание : Хотя адрес nullptr не может быть получен, можно взять адрес другого объекта nullptr_t, который является lvalue. - конец ]