我在我的程序中使用boost共享指针,并且我有一个类作为参数引用另一个对象。我碰到的问题是make_shared函数要求所有参数都是一个const引用,如果我的类的构造函数不允许const引用参数传入,我会得到编译错误。boost make_shared接受一个const引用。任何方式来解决这个问题?
有没有人知道背后的原因这个?另外,我能做些什么来解决这个问题吗?什么是给我的问题
代码示例:
class Object
{
public:
Object(int& i)
{
i = 2;
}
};
int main(int argc, char *argv[])
{
int i = 0;
boost::shared_ptr<Object> obj = boost::make_shared<Object>(i);
return 1;
}
这导致指出以下
编译器错误:make_shared.hpp:185:错误:没有匹配函数调用`对象:对象(const int的&)” 注:考生:对象:对象(const对象&) 注:对象:对象(INT &)
如果对象构造函数的参数是一个const int,则可以使用。我很好奇为什么make_shared的行为如此。
你能告诉我们一些代码来演示如何使用'make_shared()'吗? – quamrana 2009-09-03 15:06:48
的代码片段发布 – 2009-09-03 15:20:58