| Home | Libraries | People | FAQ | More

### Type Traits that Transform One Type to Another

The following templates transform one type to another, based upon some well-defined rule. Each template has a single member called `type` that is the result of applying the transformation to the template argument `T`.

Synopsis:

    template <class T>
    struct add_const;

    template <class T>
    struct add_cv;

    template <class T>
    struct add_lvalue_reference;

    template <class T>
    struct add_pointer;

    template <class T>
    struct add_reference;

    template <class T>
    struct add_rvalue_reference;

    template <class T>
    struct add_volatile;

    template <bool B, class T, class U>
    struct conditional;

    template <class... T>
    struct common_type;

    template <class T, class U>
    struct copy_cv;

    template <class T>
    struct decay;

    template <class T>
    struct floating_point_promotion;

    template <class T>
    struct integral_promotion;

    template <class T>
    struct make_signed;

    template <class T>
    struct make_unsigned;

    template <class T>
    struct promote;

    template <class T>
    struct remove_all_extents;

    template <class T>
    struct remove_const;

    template <class T>
    struct remove_cv;

    template <class T>
    struct remove_extent;

    template <class T>
    struct remove_pointer;

    template <class T>
    struct remove_reference;

    template <class T>
    struct remove_volatile;

    template <class T>
    struct type_identity;