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