Minimálne od C++11 dostali sme krásne pevná šírka čísla, napríklad v C++'s <cstdint>
alebo v C je <stdint.h>
z krabice, (napríklad std::uint32_t
, std::int8_t
), tak s alebo bez std::
pred nimi, a dokonca aj ako makrá pre minimálne šírky (INT16_C
, UINT32_C
a tak ďalej).
Ešte máme urobiť dohodu s knižnicami každý deň, ktoré definujú svoje vlastné pevná šírka celé čísla a ste mohli vidieť napríklad sf::Int32
, quint32
, boost::uint32_t
, Ogre::uint32
, ImS32
, ... Môžem ísť na a zapnuté, ak chcete, mi. Aj vy vedieť pár viac pravdepodobne.
Niekedy sa tieto definície typedef (často aj makro definície) môže viesť ku konfliktom napríklad, ak chcete prejsť std
pevná šírka integer funkcia z knižnice očakával pevná šírka celé číslo s presne rovnakú šírku, ale je definované inak.
Bod pevná šírka celé je ich majú fixnú veľkosť, čo je to, čo potrebujeme v mnohých situáciách, ako viete. Tak prečo by všetky tieto knižnice ísť o a typedef presne rovnaké čísla,, a už máme v C++ štandardom? Tie extra definuje sú niekedy mätúce, zbytočné a môžu napadnúť vaše codebase, ktoré sú veľmi zlé veci. A ak nebudú mať šírku a signedness sľubujú mať, sa aspoň hriech proti zásade najmenej údiv, takže to, čo je ich bod som týmto požiadať, aby ste?