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 }; //错误