使用boost::scoped_ptrboost::shared_ptr时出现错误


  1> * \ algomanager.cpp(28):错误C2064:术语未评估为
  函数带有1个参数


我有这样的代码。 。 。

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/

10-10 16:14