如果经常发现自己使用这样的代码:
boost::scoped_ptr<TFoo> f(new TFoo);
Bar(f.get()); // call legacy or 3rd party function : void Bar (TFoo *)
现在,我认为智能指针可以轻松地将隐式转换运算符定义回“原始”指针类型,这将允许该代码仍然有效,并简化旧代码的“智能”
Bar(f);
但是,他们没有——或者至少,不是我找到的那些。为什么?
如果经常发现自己使用这样的代码:
boost::scoped_ptr<TFoo> f(new TFoo);
Bar(f.get()); // call legacy or 3rd party function : void Bar (TFoo *)
现在,我认为智能指针可以轻松地将隐式转换运算符定义回“原始”指针类型,这将允许该代码仍然有效,并简化旧代码的“智能”
Bar(f);
但是,他们没有——或者至少,不是我找到的那些。为什么?