pointeur de méthode virtuelles ?
Ton cast là c'est ce que génère le compilo avec une méthode virtuelle, le pointeur étant stocké dans une vtable.
Et tout cast de pointeur de méthode est non-portable, et nécessite un reinterpret_cast. Rien ne te dis que les pointeurs de Base::* et de Derived::* ont la même longueur. Si Derived hérite de Base par héritage multiple ou virtuel ça sera surement pas le cas d'ailleurs.
Si tu veux éviter une méthode virtuelle par souci de perfs (ce dont je te féliciterais au passage) tu peux faire une méthode Bidule et une méthode Bidule_virtual qui apellerait la méthode bidule normale. Ou encore appeller Bidule explicitement avec Base::Bidule ou Derived::Bidule.