現在、生のポインターを使用する広範なコード ベースがあり、unique_ptr に移行したいと考えています。ただし、多くの関数はパラメーターとして生のポインターを想定しており、これらの場合に unique_ptr を使用することはできません。get() メソッドを使用して生のポインターを渡すことができることはわかっていますが、これにより、触れる必要があるコードの行数が増え、少し見苦しくなります。次のような独自の unique_ptr を作成しました。
template <class T>
class my_unique_ptr: public unique_ptr <T>
{
public:
operator T*() { return get(); };
};
次に、生のポインターを期待する関数 parm に my_unique_ptr を提供するたびに、自動的にそれを生のポインターに変換します。
質問: これを行うことについて本質的に危険なことはありますか? これは unique_ptr 実装の一部であると思っていたので、その省略は意図的なものだと思います-誰かが理由を知っていますか?