为什么下面的代码编译失败,而后面的两个例子编译成功?我在 Windows 7 上使用 VS 2008。
直接初始化 POD(失败):
int pod();
std::vector<int> pods;
//pods.push_back(pod); // This will generate a compiler error
// Compile error: 1>c:\test.hpp(43) : error C2664: 'std::vector<_Ty>::push_back' : cannot convert parameter 1 from 'int (__cdecl *)(void)' to 'const int &'
POD的拷贝初始化(成功:
int pod = int();
std::vector<int> pods;
pods.push_back(pod); // No error!