【发布时间】:2014-03-27 14:24:14
【问题描述】:
我不明白为什么要遵循代码compiles?
int main()
{
//int a = nullptr; // Doesn't Compile
//char b = nullptr; // Doesn't Compile
bool c = nullptr; // Compiles
return 0;
}
而评论部分没有。
bool 和 nullptr 都是关键字,那么其他数据类型有何独特之处?
【问题讨论】:
-
“bool 和 nullptr 都是关键字,那么其他数据类型的独特之处是什么?” 如果您能澄清为什么它们都是关键字这一事实会使我很高兴一个区别。如果你说
std::nullptr_t p; int a = p; bool c = p;对你有影响吗? -
@JohannesSchaub-litb 很抱歉造成混淆,但我担心的是为什么
nullptr不能转换为基本数据类型,即char、int? -
问题和答案适用于 C++11,但对于任何更高版本的语言规范来说已经过时了。自 C++14 以来,NOT 中的这种隐式转换不再允许直接初始化上下文之外。上面的初始化NOT编译。
标签: c++ pointers c++11 null-pointer