1、大括号初始化的时候,不允许发生窄化,例如
int a = 1.1; //正确,a被窄化为1 int b = { 2.2 }; //错误,b无法被窄化为2
2、explicit修饰的函数无法使用初值列
class P { public: P(int, int) { std::cout << "P(int, int)" << std::endl; } explicit P(int, int, int) { std::cout << "explicit P(int, int, int)" << std::endl; } }; P p1 = { 2,2 }; //正确 P p2 = { 3,3,3 }; //错误