Earlier quoted context omitted.
C++ takes a very simplistic view of runtime performance, however. Generics are implemented using templates; which instantiates the code for every type you use. Naively, this preserves the performance of simply writing the same code for each type (which is what you did before templates). However, that might not be the best performing way to implement generics at runtime. (Edit: Small change to make meaning clearer)
Huh? Templates in C++ are pay-for-what-you-use; only those instantiations required by your code are generated. Note also the ability to extern templates added in C++0x, which allow you to collapse common instantiations to a single object file.
One example of templates affecting runtime performance is poor use of the instruction cache due to code duplication in every instantiation of a template.