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.