GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::make_signed(3) C++ Standard Libary std::make_signed(3)

std::make_signed - std::make_signed


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.


Name Definition
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


#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';
}


char_type is 'signed char'? : true
int_type is 'signed int'? : true
long_type is 'volatile signed long'? : true


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)

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.