コンストラクターがパラメーターを参照として受け取るクラスがあります。たとえば。
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) { }
オブジェクトを参照渡しする他の方法はありますか?
ソフトウェアの制限は、ブースト 1.4.3、VS2010 です。
EDIT : クラスはコピー構築可能ではなく、割り当て可能でもありません。上記のサンプルクラスではそれを示していません。