xyz ():obj_abc_("NOTHING") { }; //I think this should give an error since explicit is used.根据我对显式的理解,每当调用xyz构造函数时,我都应该得到一个编译器错误;因为我只是通过将它赋值给一个字符串来初始化obj_abc。但我在这里没有收到任何编译器错误。我遗漏了什么?
如果我的理解是正确的,下面的声明都应该调用T的复制构造函数,该构造函数将x类型作为参数。T t = x;但是,当我对std::unique_ptr<int>做同样的操作时,第一个声明会出现错误,而第二个声明会编译并执行预期的操作。std::unique_ptr<int> x = new int();
std::unique_ptr<int> x (new int(