当使用 boost::scoped_ptr
或 boost::shared_ptr
时出现错误
1>*\algomanager.cpp(28) : error C2064: term does not evaluate to a function taking 1 arguments
我有这样的代码。 . .
class X{
boost::shared_ptr<cPreFilterProcess> preProcess;
public:
X(){
preProcess(new cPreFilterProcess(pars));
}
};
我错过了什么?谢谢。
最佳答案
我神秘的魔法调试玻璃球告诉我你正在做这样的事情:
class X{
boost::shared_ptr<cPreFilterProcess> preProcess;
public:
X(){
preProcess(new cPreFilterProcess(pars));
}
};
您需要使用成员初始值设定项,例如:
X() : preProcess(...){}
或者使用 .reset
因为你不能像这样分配一个指针:
X() { preProcess.reset(...); }
不过我强烈推荐第一个选项。
关于c++ - 简单的 boost 智能指针语法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10473152/