In C++ Primer Plus (2001, Czech Translation) I have found these different template specialization syntax:
function template
template
Using Visual Studio 2012, it seems to work slightly different if there's no function argument:
template T bar( ); //template int bar( ) { return 0; } doesn't work template < > int bar( ) { return 0; } //does work