Item 47: Use traits classes for information about types(Effective C++)
-
Traits classes make information about types available during compilation. They're implemented using templates and template specializations.
-
In conjunction with overloading, traits classes make it possible to perform compile-time if...else tests on types.