I have come across this piece of code (I\'m trying to include all details in case I\'m missing something):
template< typename TYPE = TYPE_with_an_arbitrar
Foo<> is the same as Foo, and Foo is the same as Foo.Foo at all, and the parameters of baz and bar will always be deduced by the compiler from the given arguments.