ตั้งแต่อย่างน้อย C++11 เราเจอที่น่ารักความกว้างคงที่ integers ตัวอย่างเช่นใน C++'s <cstdint>
หรืออยู่ใน C น <stdint.h>
ออกมาจากกล่อง(ตัวอย่างเช่น std::uint32_t
, std::int8_t
)ดังนั้นกับหรือไม่มี std::
ในด้านหน้าของพวกเขาและแม้ตอนที่เพิ่มมาสก์สำหรับน้อยที่สุด widths(INT16_C
, UINT32_C
และดังนั้นบน).
ถึงยังไงพวกเราต้องทำข้อตกลงกับไลบรารีนทุกวันที่กำหนดของตัวเองซ่อมความกว้าง integers และคุณอาจจะเห็นตัวอย่างเช่น sf::Int32
, quint32
, boost::uint32_t
, Ogre::uint32
, ImS32
ผมสามารถไปและถ้าคุณต้องการให้ฉันไป คุณเหมือนกันรู้จักอีกสองสามอาจจะนะ
บางครั้งพวกนี้ typedefs(ยังบ่อยมาโครงความหมายของคำ)อาจจะนำไปสู่ขัดแย้งสำหรับตัวอย่างเช่นตอนที่คุณอยากจะเป็นขอผ่าน std
ความกว้างคงที่จำนวนเต็มที่ฟังก์ชันอกจากห้องสมุดกำลังรอการความกว้างคงที่จำนวนเต็มกับเหมือนกันความกว้างแต่ถูกกำหนดรายที่สองในแอทแลนติกซิตี้
ประเด็นของตัวอักษรกว้างคงที่ integers คือพวกเขากำลังซ่อมขนาดซึ่งเป็นสิ่งที่เราต้องการในหลายสถานการณ์อย่างที่คุณรู้ แล้วทำไมทุกไลบรารีแบบใช้ร่อนไปเรื่องและ typedef เหมือนกัน integers พวกเราต้องอยู่ใน C++มาตรฐาน? พวกนั้นพิเศษกำหนเป็นบางครั้งสับสนหน่อยหรอกและอาจจะบุกรุกของคุณ codebase ซึ่งเป็นสิ่งเลวร้ายหลายอย่าง และถ้าพวกเขาไม่มีความกว้างและ signedness พวกเขาสัญญาว่าจะมีพวกเขาอย่างน้อยทำบาปต่อต้านทฤษฎีขออย่างน้อย astonishment ดังนั้นพวกเขาเป็นประเด็นฉันขอถามคุณ?