I want to do something like
template void foo(const T& t) { IF bar(t) would compile bar(t); ELSE baz(t); }
Are you not able to use full specialisation here (or overloading) on foo. By say having the function template call bar but for certain types fully specialise it to call baz?