我有一个类,构造函数将参数作为参考。例如。
class A
{
A(Tracer& t) : m_t(t) { }
private:
Tracer& m_t;
};
我有这个class A
作为 boost::optional 并且只想在需要时构建它。如果我使用 boost::in_place 来构造它。由于boost::in_place
将参数作为 const_refs,我不得不将构造函数的签名修改为
A(const Tracer& t) : m_t(const_cast<Tracer&>(t) { }
还有其他方法可以通过引用传递对象吗?
软件限制是 boost 1.4.3,VS2010。
编辑:该类也不是可复制构造和可分配的。我没有在上面提到的示例类中展示这一点。