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::numeric_limits::is_signed(3) C++ Standard Libary std::numeric_limits::is_signed(3)

std::numeric_limits::is_signed - std::numeric_limits::is_signed


static const bool is_signed; (until C++11)
static constexpr bool is_signed; (since C++11)


The value of std::numeric_limits<T>::is_signed is true for all signed arithmetic
types T and false for the unsigned types. This constant is meaningful for all
specializations.


T value of std::numeric_limits<T>::is_signed
/* non-specialized */ false
bool false
char implementation-defined
signed char true
unsigned char false
wchar_t implementation-defined
char8_t (C++20) false
char16_t (C++11) false
char32_t (C++11) false
short true
unsigned short false
int true
unsigned int false
long true
unsigned long false
long long (C++11) true
unsigned long long (C++11) false
float true
double true
long double true

// Run this code


#include <iostream>
#include <iomanip>
#include <limits>


template <typename T> struct test {
test(const char* name, int w = 15) {
std::cout
<< std::left << std::setw(w)
<< (std::numeric_limits<T>::is_specialized ? name : "non-specialized")
<< " : "
<< (std::numeric_limits<T>::is_signed ? "" : "un") << "signed\n";
}
};


int main()
{
test<bool>{"bool"};
test<char>{"char"};
test<wchar_t>{"wchar_t"};
test<char16_t>{"char16_t"};
test<char32_t>{"char32_t"};
test<float>{"float"};
struct delusion{};
test<delusion>{"delusion"};
test<decltype(42)>{"decltype(42)"};
}


bool : unsigned
char : signed
wchar_t : signed
char16_t : unsigned
char32_t : unsigned
float : signed
non-specialized : unsigned
decltype(42) : signed


is_signed checks if a type is a signed arithmetic type
(C++11) (class template)
is_integer identifies integer types
[static] (public static member constant)
is_exact identifies exact types
[static] (public static member constant)
is_bounded identifies types that represent a finite set of values
[static] (public static member constant)

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.