On the topic, I assume you all know that
void foo(T bar) {}
is not equivalent to
void foo(bar) T bar; {}
Specifically, you can't compile a function with prototypes, and then
refer to it without prototypes and always be sure you get away with
it. In most cases you can, but not always. Don't know if this a big
concern or not.
/Johan