struct Foo {
void setBar(bool bar_) { bar = bar_; }
bool bar;
};
int main() {
Foo f;
f.setBar("true");
}
由于类型转换,上述代码编译成功,即使在bool
预期 a 的地方传递了一个 char 数组。
是否有可能导致此代码编译失败?(首选 C++03 解决方案,因为我工作场所的编译器很古老。)
我在 StackOverflow 上查看了以下相关问题,但它们并没有完全解决这个问题。防止 C++ 中的隐式转换,为什么编译器选择 bool 而不是字符串来进行 L"" 的隐式类型转换?