我正在阅读 Stroustrup 的书“编程:使用 C++ 的原则和实践”。类型安全章节指出应避免缩小转换。作为对象初始化的安全方法之一,提出了用花括号int x{100}进行初始化的方法。在实验过程中,我故意编写了错误的代码
int main() {
int x = 1000;
char y {x};
int mee = y;
cout << mee;
}
为什么 gcc 编译器执行程序时只发出警告:警告:将“x”从“int”缩小到“char”的转换[-Wnarrowing]。毕竟,这种类型的初始化禁止缩小转换。我预计在 MSVC 中会看到这样的错误。