C++ Logo

SG12

Advanced search

Subject: Re: [ub] [c++std-ext-14555] Sized integer types and char bits
From: Gabriel Dos Reis (gdr_at_[hidden])
Date: 2013-10-18 15:37:09


| -----Original Message-----
| From: ub-bounces_at_[hidden] [mailto:ub-bounces_at_[hidden]] On Behalf Of
| Stephan T. Lavavej
| Sent: Friday, October 18, 2013 12:06 PM
| To: c++std-ext_at_[hidden]; Herb Sutter
| Cc: WG21 UB study group
| Subject: Re: [ub] [c++std-ext-14555] Sized integer types and char bits
|
| [Gabriel Dos Reis, c++std-ext-14555]
| > My understanding of 'optional' is that the types are conditionally
| > supported, and a macro in <stdint.h> indicates whether the corresponding
| > type is supported.
|
| They are a special form of conditionally supported. C99 7.18.1.1 "Exact-width
| integer types" /3: "These types are optional. However, if an implementation
| provides integer types with widths of 8, 16, 32, or 64 bits, no padding bits, and (for
| the signed types) that have a two's complement representation, it shall define the
| corresponding typedef names."

Furthermore, <stdint.h> is required to define INTN_MIN and INTN_MAX
macros for the limits of the corresponding intN_t datatype. A program can
test for these macros. Similar things for printf format specifiers in <inttypes.h>

-- Gaby


SG12 list run by herb.sutter at gmail.com