What is wrong if I create a template, for example Wrap < 5>4 > p; ?
This should be intuitively obvious just by looking at the statement: it confuses even for people! The compiler is not able to handle the double value > here: does that mean more? Does this mean "close the list of template arguments"? It turns out that this means that both the one and the other, and the compiler has no hint as to which sense to apply where. Both methods are technically sound.
source share