在书籍《泛型编程与STL》(中文版)中,有这样一句话:
输出是"This is ctor"。好的,现在我有点困惑了,哪个是正确的?
这对我来说有些奇怪。我写了一个测试程序,像这样:
X x = X()
会调用拷贝构造函数。
#include <iostream>
class Test {
public:
Test() {
std::cout << "This is ctor\n";
}
Test(const Test&) {
std::cout << "This is copy-ctor\n";
}
};
int main(int argc, char** argv)
{
Test t = Test();
return 0;
}
输出是"This is ctor"。好的,现在我有点困惑了,哪个是正确的?
-fno-elide-constructors
,因为即使是-O0
也无法防止省略。 - Kerrek SB:)
- sbi:)
- sbi