为什么我可以在不包含 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
header 并使用 std::nullptr_t
.
获取它
C++ nullptr 是 std::nullptr_t 类型。
为什么像
这样的程序int main() {
int* ptr = nullptr;
}
虽然不包含任何 STL 库,但仍然有效?
在 C++11 中,他们想添加一个关键字来替换宏 NULL
(基本上定义为 #define NULL 0
),既因为它是一个核心概念,也因为一些当您被迫使用 0
作为您的空指针常量时,您会遇到恼人的错误。
建议的关键字数量。搜索大型代码库以确保关键字未被使用,并且它仍然描述了他们想要的内容(空指针常量)。
nullptr
被发现足够罕见且足够令人回味。
nullptr
的类型默认没有关键字名称,因为大多数程序都不需要。您可以通过 decltype(nullptr)
或包含 std
header 并使用 std::nullptr_t
.