Playing around with devirtualization in C++