AFAIK without pointing Derivedto d. A pointer Baseto d( pb) has already lost type information through an abstraction that cannot be restored without a dangerous throw.
Since you are declaring a pointer to a pointer to Derived, you first need to point to a pointer to Derived. For instance:
Derived* pd = &d;
Derived** ppd = &pd;
Both of these definitions are type safe, checked at compile time.