FreeBSD Manual Pages
std::make_signed(3) C++ Standard Libary std::make_signed(3) NAME std::make_signed - std::make_signed Synopsis Defined in header <type_traits> template< class T > (since C++11) struct make_signed; 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. If T is signed or unsigned char, short, int, long, long long, the signed type from this list corresponding to T is provided. If T is an enumeration type or char, wchar_t, char8_t (since C++20), char16_t, char32_t, the signed integer type with the smallest rank having the same sizeof as T is provided. Otherwise, the behavior is undefined. (until C++20) Otherwise, the program is ill-formed. (since C++20) The behavior of a program that adds specializations for make_signed is undefined. Member types Name Definition type the signed integer type corresponding to T Helper types template< class T > (since C++14) using make_signed_t = typename make_signed<T>::type; Example // Run this code #include <iostream> #include <type_traits> int main() { typedef std::make_signed<unsigned char>::type char_type; typedef std::make_signed<unsigned int>::type int_type; typedef std::make_signed<volatile unsigned long>::type long_type; bool ok1 = std::is_same<char_type, signed char>::value; bool ok2 = std::is_same<int_type, signed int>::value; bool ok3 = std::is_same<long_type, volatile signed long>::value; std::cout << std::boolalpha << "char_type is 'signed char'? : " << ok1 << '\n' << "int_type is 'signed int'? : " << ok2 << '\n' << "long_type is 'volatile signed long'? : " << ok3 << '\n'; } Output: char_type is 'signed char'? : true int_type is 'signed int'? : true long_type is 'volatile signed long'? : true See also is_signed checks if a type is a signed arithmetic type (C++11) (class template) is_unsigned checks if a type is an unsigned arithmetic type (C++11) (class template) make_unsigned makes the given integral type unsigned (C++11) (class template) http://cppreference.com 2022.07.31 std::make_signed(3)
NAME | Synopsis | Member types | Helper types | Example | Output: | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::make_signed&sektion=3&manpath=FreeBSD+Ports+15.0>
