我用3个编译器测试了以下代码,得到了3个不同的结果:错误,警告和确定.
哪个编译器正确?我知道这是指针类型和bool.之间的微不足道的转换.但那是什么std::nullptr_t和bool?
(最后,Clang和MSVC对代码都很好.Clang以积极的方式更加冗长.)
struct Thing
{
Thing(bool) {}
};
void addThing(const Thing&){}
int main()
{
addThing(nullptr); // warning or error on this line
}
Run Code Online (Sandbox Code Playgroud)