指针到布尔的无声转换

时间:2019-05-11 19:33:41

标签: c++

在Microsoft C ++ 2017中,我刚遇到了C ++隐式转换的奇怪问题。

给予

void f(int);

通话

f("test");

出现错误,并出现编译器错误消息。

但是如果我将函数声明更改为

void f(bool);

然后,该调用无需窥视即可编译。 (这并不特定于char*;其他指针类型也会发生同样的情况。)我知道,bool的隐式变宽转换可能会发生意外,但这是隐式变窄的转换,我没想到。

关于这为什么成立,我是否忘记了一些理由?

0 个答案:

没有答案