This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of NAD status.
atomic_
typedefsSection: 33.5 [atomics] Status: NAD Submitter: BSI Opened: 2010-08-25 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [atomics].
View all issues with NAD status.
Discussion:
Addresses GB-129
Table 143 lists the typedefs for various atomic types
corresponding to the various standard integer typedefs,
such as atomic_int_least8_t
for int_least8_t
, and
atomic_uint_fast64_t
for uint_fast64_t
. However, there are
no atomic typedefs corresponding to the fixed-size
standard typedefs int8_t
, int16_t
, and so forth.
[ 2010-10-24 Daniel adds: ]
Accepting n3164 would solve this issue.
[ 2011-02-15 Anthony corrects numbering/naming for N3225, Howard suggests improvement for the position of '(optional)', Daniel reorders rows in harmony to remaining entries and suggests specific optionality comments: ]
[2011-02-16 Reflector discussion]
Moved to Tentatively Ready after 5 votes.
[2011-03-16: Hans reopenes and comments]
WG14 briefly discussed LWG 1456. It turns out that they had previously made a conscious decision not to make a similar change. If C++ would deviate, this would introduce a C divergence.
We should reopen the issue and, in my opinion, probably resolve it as NAD instead. This is in a part of the standard that is there mostly for C compatibility, so introducing divergence here seems to make no sense.[2011-03-24 Madrid]
Rationale:
WG14 does not require these typedefs, and we see no reason to be gratuitously different.
Proposed resolution:
Add the following entries to table 143:
Table 146 — atomic
<inttypes.h>
typedefsAtomic typedef <inttypes.h>
type...
...
atomic_intmax_t
intmax_t
atomic_uintmax_t
uintmax_t
atomic_int8_t
// iffint8_t
is providedint8_t
atomic_uint8_t
// iffuint8_t
is provideduint8_t
atomic_int16_t
// iffint16_t
is providedint16_t
atomic_uint16_t
// iffuint16_t
is provideduint16_t
atomic_int32_t
// iffint32_t
is providedint32_t
atomic_uint32_t
// iffuint32_t
is provideduint32_t
atomic_int64_t
// iffint64_t
is providedint64_t
atomic_uint64_t
// iffuint64_t
is provideduint64_t