次のようなコードを使用していることが多い場合:
boost::scoped_ptr<TFoo> f(new TFoo);
Bar(f.get()); // call legacy or 3rd party function : void Bar (TFoo *)
さて、スマート ポインターは暗黙の変換演算子を簡単に定義して「生の」ポインター型に戻すことができると思います。これにより、このコードを引き続き有効にすることができ、古いコードの「スマート化」が容易になります。
Bar(f);
しかし、そうではありません - または少なくとも、私が見つけたものではありません。なんで?