class T
{};
class UseT
{
public:
//...
boost::shared_ptr<const T> getT() const
{
return m_t;
}
private:
boost::shared_ptr<T> m_t;
};
boost::shared_ptr<T>
質問> からに変換するときに使用される規則は何boost::shared_ptr<const T>
ですか?
shared_ptr<T>
には、 からへのshared_ptr<U>
変換が有効な場合にから構築できる変換コンストラクターがあり、組み込みポインターの動作を反映しています。U*
T*
template<typename U>
shared_ptr(const shared_ptr<U>& other);
(std::shared_ptr
コンストラクターU*
は に変換可能な場合にのみ呼び出すことができますがT*
、boost::shared_ptr
それをチェックするかどうかはわかりません。または、無効な変換のコンパイラ エラーが発生するだけです。)
T*
は に変換できるため、コンストラクターを使用してからconst T*
を作成できます。shared_ptr<const T>
shared_ptr<T>