This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of C++11 status.
<cinttypes>
Section: 31.8.3 [istringstream] Status: C++11 Submitter: Canada Opened: 2010-08-25 Last modified: 2016-01-28
Priority: Not Prioritized
View all issues with C++11 status.
Discussion:
Addresses CA-4
Subclause 27.9.2 [c.files] specifies that <cinttypes> has declarations for abs() and div(); however, the signatures are not present in this subclause. The signatures proposed under TR1 ([tr.c99.inttypes]) are not present in FCD (unless if intmax_t happened to be long long). It is unclear as to which, if any of the abs() and div() functions in [c.math] are meant to be declared by <cinttypes>. This subclause mentions imaxabs() and imaxdiv(). These functions, among other things, are not specified in FCD to be the functions from Subclause 7.8 of the C Standard. Finally, <cinttypes> is not specified in FCD to include <cstdint> (whereas <inttypes.h> includes <stdint.h> in C).
[ Post-Rapperswil, Daniel provides wording ]
Subclause [c.files] specifies that <cinttypes>
has declarations for abs()
and div()
;
however, the signatures are not present in this subclause. The signatures proposed under TR1 ([tr.c99.inttypes]) are not
present in FCD (unless if intmax_t
happened to be long long
). It is unclear as to which, if any of the
abs()
and div()
functions in [c.math] are meant to be declared by <cinttypes>
. This
subclause mentions imaxabs()
and imaxdiv()
. These functions, among other things, are not specified in
FCD to be the functions from subclause 7.8 of the C
Standard. Finally, <cinttypes>
is not specified
in FCD to include <cstdint>
(whereas <inttypes.h>
includes <stdint.h>
in C
).
Moved to Tentatively Ready with proposed wording after 5 positive votes on c++std-lib.
[ Adopted at 2010-11 Batavia ]
Proposed resolution:
The wording refers to N3126.
Table 132 describes header
2 - The contents of header<cinttypes>
. [Note: The macros defined by<cinttypes>
are provided unconditionally. In particular, the symbol__STDC_FORMAT_MACROS
, mentioned in footnote 182 of theC
standard, plays no role inC++
. — end note ]<cinttypes>
are the same as the StandardC
library header<inttypes.h>
, with the following changes: 3 - The header<cinttypes>
includes the header<cstdint>
instead of<stdint.h>
. 4 - If and only if the typeintmax_t
designates an extended integer type ([basic.fundamental]), the following function signatures are added:intmax_t abs(intmax_t); imaxdiv_t div(intmax_t, intmax_t);which shall have the same semantics as the function signatures
intmax_t imaxabs(intmax_t)
andimaxdiv_t imaxdiv(intmax_t, intmax_t)
, respectively.