For example the C++ templates rules are themselves a turing-complete language.
If by generics you meant some really basic features, I think you can do pretty well with interfaces. They're already in the language.
If by generics you meant the full-package, i think you could end up with something pretty complex all the time.