Introduction

The Boost type-traits library contains a set of very specific traits classes,
each of which encapsulate a single trait from the C++ type system; for example,
is a type a pointer or a reference type? Or does a type have a trivial constructor,
or a const-qualifier?

The type-traits classes share a unified design: each class inherits from a
the type true_type
if the type has the specified property and inherits from false_type
otherwise.

The type-traits library also contains a set of classes that perform a specific
transformation on a type; for example, they can remove a top-level const or
volatile qualifier from a type. Each class that performs a transformation defines
a single typedef-member type
that is the result of the transformation.