#include <boost/smart_ptr.hpp>
class Base {
};
class Derived : public Base {
public:
Derived() : Base() {}
};
void func(/*const*/ boost::shared_ptr<Base>& obj) {
}
int main() {
boost::shared_ptr<Base> b;
boost::shared_ptr<Derived> d;
func(b);
func(d);
}
これは、funcの署名のconstを使用してコンパイルされますが、それがない場合はコンパイルされません。エラーは呼び出しの行に表示されますfunc(d);
私へのヒントはありますか?