Now, I'm familiar with templates and I'm somewhat familiar with things like SFINAE, and I've been wondering what goes on when a template is instantiated by the compiler.
When you do things in TMP, like SFINAE, or even the simple Fibonacci sequence in TMP, it seems like the compiler is doing more than what I understand under template instantiation. It seems the compiler is executing the template code.
My question is, what exactly is template instantiation and where is the line drawn with the compiler actually executing code?
The compiler creates a type of your template, is my understanding of template instantiation. But in TMP it seems like it's doing a whole lot more than that, and that confuses me.