C++ Language/Templates/Traits

A "trait" is information about some type, which is available to the compiler at compile-time (because it is expressed either as a static-data-member or as a type alias). Traits are often used to guide the decision-making within template-metaprogramming.


 * 1) Unary Predicate Traits
 * 2) Binary Predicate Traits
 * 3) Array Traits
 * 4) Unary Transform Traits
 * 5) Binary Transform Traits
 * 6) S.F.I.N.A.E. Conditional-Compilation