Although C# and Java do not suffer from the craziness that is C++, by virtue of requiring a class name, e.g.
template <boolean t> void myclass() { ... code ...};
...
myclass<3>4>(); /* myclass<false>? 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)