boost :: shared_ptr et la distribution dynamique

J'ai un problème à l'aide d'un shared_ptr d'une classe de base, je ne peux pas semblent être en mesure d'appeler la classe dérivée des méthodes de référence. Je crois que le code sera plus bavarde que moi:

class Base : public boost::enable_shared_from_this<Base>
{
  public:
    typedef  boost::shared_ptr<BabelNet> pointer;
};

class Derived : public Base
{
  public:
     static pointer  create()
                {
                        return pointer(new Derived);
                }
     void             anyMethod()
     {
        Base::pointer foo = Derived::create();
        //I can't call any method of Derived with foo
        //How can I manage to do this ?
        //is dynamic_cast a valid answer ?
        foo->derivedMethod(); //-> compilation fail
     }

};

source d'informationauteur HolyLa