actually, 'traits' is not a parallel concept to 'template specialization'. my understanding of 'traits' is a more general concept, it can be implemented using 'template specialization' (or 'partial specialization'), or 'tag' or whatever method. the application of 'traits' is not restricted to 实现的不同的type 选用不同的策率, either.
as far as 实现的不同的type 选用不同的策率 is concerned, traits can (but don't have to) be essentially the same as template (partial) specialization.