| Home | Libraries | People | FAQ | More

### floating_point_promotion

    template <class T>
    struct floating_point_promotion
    {
       typedef see-below type;
    };

    template <class T> using floating_point_promotion_t = typename floating_point_promotion<T>::type; // C++11 and above

type: If floating point promotion can be applied to an rvalue of type `T`, then applies floating point promotion to `T` and keeps cv-qualifiers of `T`, otherwise leaves `T` unchanged.

C++ Standard Reference: 4.6.

Header: `#include <boost/type_traits/floating_point_promotion.hpp>` or `#include <boost/type_traits.hpp>`

Table 1.21. Examples

Expression | Result Type
--- | ---
`floating_point_promotion<float const>::type` | `double const`
`floating_point_promotion<float&>::type` | `float&`
`floating_point_promotion<short>::type` | `short`

Compiler Compatibility: All current compilers are supported by this trait.