I've already read Are inline virtual functions really a non-sense?. But I still have some doubts and found no answer there.
They say that if situation isn't ambiguous, compiler should inline the virtual function.
However:
This can happen only when the compiler has an actual object rather than a pointer or reference to an object.
So what if I have a B class derived from an A one (which contains a virtual void doSth() function) and I use the B* pointer, not the A*:
B* b = new B;
b->doSth();- Suppose that the Bhasn't any child classes. It's rather obvious (on the compile time) what function should be called. So it's possible to be inlined. Is it in fact?
- Suppose that the Bhas some child classes but these classes haven't its owndoSth()function. So compiler should "know" that the only function to call isB::doSth(). I guess it doesn't inline though?
 
     
     
    