I don't know... I feel like to many C++ templates are hell and C#/Java style generics the sweet spot you want in the actual language.
If you want to do insane meta programming, you should look into Roslyn generators. It's like they added a robust code gen system to the language (even though its a compile stack feature). You basically get the full power of templates and macros but you get to use the target language (C#) instead of a bolted on macro or template language.