Occationally the end user may need to provide their own specialization for
one of the type traits - typically where intrinsic compiler support is required
to implement a specific trait fully. These specializations should derive from
boost::true_type
or boost::false_type
as appropriate: