Yup,and this is excerbarated by the fact that c++ doesn't really offer any convenient equivalent of virtual methods with static dispatch.
std::variant is almost it, but it's interface is quite horrendous as of now.
Another interesting thing is that c++ also intermingles dynamic allocation with polymorphism, which can lead to a lot of unnecessary pointer chasing