だから私はそのようなものを持っています
class baseclass {
....
}
class derived : public baseclass {
...
}
void func(boost::shared_ptr<baseclass>& a){
//stuff
}
boost::shared_ptr<derived> foo;
func(foo);
これは機能しますか?同じタイプではないからだと思いますが、正しいタイプにキャストする能力がないので、これを機能させるために考えられる回避策はありますか?
編集:私が知っている限りキャストできない理由は、型のベクトルで並べ替えを行っているためboost::shared_ptr<derived>
、vec.begin() と vec.end() でのみ並べ替えを呼び出すためです。