用 {} 代替 = 或 () 进行初始化
6.6.1 ID_missingBracedSyntax
用 = 或 () 初始化不检查类型转换是否安全,可能会造成数据丢失,用 {} 初始化会进行相关检查,避免数据丢失。
示例:
double d = 1.2;
float x = d; // Non-compliant, may loss data
float y(d); // Non-compliant, may loss data
float z{d}; // Compliant, compile-time protected
例中 x 和 y 的初始化可能存在数据丢失等问题,z 的初始化无法通过编译,使问题可以及时修正。
相关
依据
ISO/IEC 14882:2011 8.5.4