繁体   English   中英

为什么我可以在不包含STL的情况下使用nullptr?

[英]Why can I use nullptr without including STL?

C ++ nullptr的类型为std :: nullptr_t

为什么一个程序喜欢

int main() {
 int* ptr = nullptr;
}

仍然有效,虽然它不包括任何STL库?

在C ++ 11中,他们想要添加一个关键字来替换宏NULL (基本上定义为#define NULL 0 ),因为它是一个核心概念,并且因为你被迫使用时会遇到一些恼人的错误0作为空指针常量。

提出了一些关键词。 搜索大型代码库以确保关键字未被使用,并且仍然描述了他们想要的内容(空指针常量)。

发现nullptr足够稀有且足够令人回味。

默认情况下, nullptr的类型没有给出关键字名称,因为大多数程序都不需要这样做。 您可以通过decltype(nullptr)或包含std头并使用std::nullptr_t来获取它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM