我在"C++编程语言"第4版中学习了大括号分隔初始化器.>第2章:C++之旅:基础知识.
我引用下面的书.
=表格是传统的并且可以追溯到C,但是如果有疑问,请使用通用{} -list表单(第6.3.5.2节).如果不出意外,它可以帮助您避免丢失信息的转换(缩小转化次数;§10.5):
Run Code Online (Sandbox Code Playgroud)int i1 = 7.2; // i1 becomes 7 int i2 {7.2}; // error : floating-point to integer conversion int i3 = {7.2}; // error : floating-point to integer conversion (the = is redundant)
但是,我无法重现这些结果.
我有以下代码.
#include <iostream>
int main()
{
int i1 = 7.2;
int i2 {7.2};
int i3 = {7.2};
std::cout << i1 << "\n";
std::cout << i2 << "\n";
std::cout << i3 << "\n";
}
Run Code Online (Sandbox Code Playgroud)
当我编译并运行它时,我没有得到任何错误.我收到警告,std=c++11但没有错误.
$ g++ init.cpp
init.cpp: In function …Run Code Online (Sandbox Code Playgroud)