Michel Fortin: > Surely going through all those virtual calls slows things down a lot.<
Right. But the purpose of a good compiler is to kill those, devirtualizing. LLVM devs are working on this too. See: http://llvm.org/bugs/show_bug.cgi?id=6054 http://llvm.org/bugs/show_bug.cgi?id=3100 --------------------- Steven Schveighoffer: >The problem with using generic code is that the compiler will needlessly >duplicate functions that are identical.< See the -mergefunc compiler switch of LDC, to merge identical functions (like ones produced by template instantiations). This feature is not very powerful yet, but it's present and I have seen it works. See: http://llvm.org/bugs/show_bug.cgi?id=6712 http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=108275 Bye, bearophile