When using templates to determine the behaviour of a function or class (e.g. if you test type traits), is there any particular disadvantages and/or advantages to using either overloading or template specialization? (Forgive me, I didn't really know how to phrase my question.)