People,
please learn from mistakes of the past. Using less-than and greater-than as template parameters was a horrible idea by Stroustroup, but was copied by Java and C#.
Although C# and Java do not suffer from the craziness that is C++, by virtue of requiring a class name, e.g.
template void myclass() { ... code ...};
...
myclass4>(); /* myclass? or syntax error? */
is unique to C++ - but still, all lexing/parsing/syntax highlighting/analysis of the language is much harder because of this horrible choice.
For heaven's sake, please use {} or [] or some other character which does not also function as an infix operator.
(Even APL and K, which overload every character in fifty different ways, don't mix grouping with infix operators)