Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.
PrevUpHomeNext

make_signed

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

type: If T is a signed integer type then the same type as T, if T is an unsigned integer type then the corresponding signed type. Otherwise if T is an enumerated or character type (char or wchar_t) then a signed integer type with the same width as T.

If T has any cv-qualifiers then these are also present on the result type.

Requires: T must be an integer or enumerated type, and must not be the type bool.

C++ Standard Reference: 3.9.1.

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

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

Table 1.23. Examples

Expression

Result Type

make_signed<int>::type

int

make_signed<unsigned int const>::type

int const

make_signed<const unsigned long long>::type

const long long

make_signed<my_enum>::type

A signed integer type with the same width as the enum.

make_signed<wchar_t>::type

A signed integer type with the same width as wchar_t.



PrevUpHomeNext