When can the C++ compiler devirtualize a call? | Hacker News Reader