-
Key: CPP1111-11
-
Legacy Issue Number: 18406
-
Status: closed
-
Source: gmail.com ( daniel.kruegler@gmail.com)
-
Summary:
Section 6.5 (Table 6.1) loosely describes that the OMG IDL integer types are mapped to "a basic C++11 type" denoted by
int16_t int32_t int64_t uint16_t uint32_t uint64_t uint8_t
It doesn't really say, what these typedefs are supposed to be. Furthermore 6.5 (Table 6.2) describes the names
int16_t int32_t int64_t uint16_t uint32_t uint64_t uint8_t
as "keywords from the C++11 specification (ISO/IEC 14882:011)".
Surely there are no such keywords in C+11 (nor in C11 or C99) and never had been. What C+11 inherits from the C99 library specification are the typedefs
std::int16_t std::int32_t std::int64_t std::uint16_t std::uint32_t
std::uint64_t std::uint8_tfrom header <cstdint>, but those are not keywords and they are library components that belong to namespace std. I think that the specification of the basic integer type mapping (6.5) intends to refer to these typedefs from <cstdint>, but this should be made clear in 6.5.
Also, section 6.30 should not declare them as C+11 keywords, even though these names need to be protected by a cxx prefix as described by 6.2. Presumably a better name is needed (e.g. "protected C+11 names" or some such)
-
Reported: CPP11 1.0b2 — Fri, 1 Feb 2013 05:00 GMT
-
Disposition: Resolved — CPP11 1.1
-
Disposition Summary:
Accepting this issue as proposed
-
Updated: Fri, 6 Mar 2015 20:58 GMT