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.
Section: 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> typedefs Atomic typedef <inttypes.h> type ... ... atomic_intmax_t intmax_t atomic_uintmax_t uintmax_t atomic_int8_t // iff int8_t is provided int8_t atomic_uint8_t // iff uint8_t is provided uint8_t atomic_int16_t // iff int16_t is provided int16_t atomic_uint16_t // iff uint16_t is provided uint16_t atomic_int32_t // iff int32_t is provided int32_t atomic_uint32_t // iff uint32_t is provided uint32_t atomic_int64_t // iff int64_t is provided int64_t atomic_uint64_t // iff uint64_t is provided uint64_t