They aren't are they? Cached method calls are fairly fast from what i've read.
[1] https://www.mikeash.com/pyblog/performance-comparisons-of-co...
[1] https://www.mikeash.com/pyblog/performance-comparisons-of-co...
But it's even worse than that: I'm talking about devirtualized calls, which are far faster than virtual calls in C++. More importantly than just the call time, devirtualization can have outsized performance impact because it enables inlining, converting intraprocedural optimizations to interprocedural optimizations. The difference between inlining and not can easily be a 10x-level performance difference with an optimizing compiler like LLVM.
If you want inlining, use a static inline function.