std::make_signed (3) - Linux Man Pages
Defined in header <type_traits>
template< class T > (since C++11)
If T is an integral (except bool) or enumeration type, provides the member typedef type which is the signed integer type corresponding to T, with the same cv-qualifiers.
Otherwise, the behavior is undefined.
type the signed integer type corresponding to T
template< class T > (since C++14)
using make_signed_t = typename make_signed<T>::type;
// Run this code
is_signed checks if a type is a signed arithmetic type
is_unsigned checks if a type is an unsigned arithmetic type
make_unsigned makes the given integral type unsigned