leyts try very rough simlified concept:template itself - is compile-time program (parameterizable), it can generate some code for you.
template instantiation (like "calling") with "!" - instruct compiler to "start this compile-time program here with this parameters".