Frage :
Gibt es eine C ++ - Toolchain, in der std::uint8_t
existiert, aber nicht eine Typedef für unsigned char
(oder char
, wenn sie nicht signiert ist)?
BEARBEITEN: Umgekehrt: Ist so etwas bei einer normkonformen Implementierung überhaupt möglich?
Hintergrund / Motivation :
Ich frage hauptsächlich, weil ich wissen möchte, ob std::uint8_t*
portabel verwendet werden kann, um auf einzelne Bytes zuzugreifen (genau wie unsigned char*
). Und ja, mir ist std::byte
bekannt, aber das ist hier nicht relevant. Ich bin hauptsächlich an Toolchains für x86, Arm und Mips interessiert, aber aus Neugier möchte ich auch gerne von anderen Beispielen hören.
char
ist kein vorzeichenloser Integer-Typ , auch wenn er tatsächlich vorzeichenlos ist. Da uint8_t
ein vorzeichenloser Integertyp sein muss, darf es niemals char
sein. CHAR_BIT
muss mindestens 8 sein, während der nächstkleinere standardmäßige Ganzzahlwert ohne Vorzeichen, unsigned short
, mindestens 16 Bits haben muss. Wenn uint8_t
existiert, muss es "ein vorzeichenloser Integertyp mit einer Breite von 8 und keinen Füllbits sein". Wenn uint8_t
einen standardmäßigen, vorzeichenlosen ganzzahligen Typ angibt, dann kann es nur unsigned char
sein. uint8_t
einen implementierungsdefinierten erweiterten vorzeichenlosen Integer-Typ angibt. Ich kenne jedoch keine Implementierungen, die dies tun. Tags und Links c++ standard-library