आधार
- C भाषा
CHAR_BIT macro के ज़रिए byte में bit की संख्या को implementation-defined रूप में उपलब्ध कराती है, और C++ ने भी इसे वैसा ही अपनाया है
- आधुनिक hardware का अधिकांश हिस्सा इस धारणा पर आकर ठहर चुका है कि byte 8-bit का होता है
- यह दस्तावेज़ प्रस्ताव करता है कि C++ में आधिकारिक रूप से स्पष्ट किया जाए कि byte 8-bit है
- प्रमुख compiler पहले से ही 8-bit byte को support करते हैं
- GCC default मान 8 पर सेट करता है
- LLVM
__CHAR_BIT__ को 8 पर सेट करता है
- MSVC
CHAR_BIT को 8 के रूप में define करता है
- POSIX 2001 से 8-bit byte की मांग करता आ रहा है
- जो software 8-bit byte को support नहीं करता, वह compatible नहीं है
C पर प्रभाव
- यह प्रस्ताव इस बात की पड़ताल करता है कि क्या 8-bit के अलावा किसी और byte का उपयोग करने वाली architecture के लिए C++ की प्रासंगिकता है
- C भाषा समिति किसी अलग निष्कर्ष पर पहुँच सकती है, और आदर्श स्थिति यह होगी कि दोनों समितियाँ सहमत हों
भाषा
- C++ memory model में storage की मूल इकाई byte है, और byte 8-bit से बना होता है
CHAR_BIT macro climits header में रिपोर्ट किया जाता है
लाइब्रेरी
climits header, C standard library header limits.h की तरह, सभी macro define करता है
cstdint header निर्दिष्ट width वाले integer types और integer types की सीमाएँ बताने वाले macro उपलब्ध कराता है
- सभी types और macro केवल तभी non-optional होते हैं जब byte 8-bit का हो
GN⁺ का सार
- यह दस्तावेज़ C++ में byte के 8-bit होने को आधिकारिक रूप से स्पष्ट करने का प्रस्ताव है
- आधुनिक hardware और software platform का अधिकांश हिस्सा 8-bit byte का उपयोग करता है, इसलिए इसे standardize करना तर्कसंगत है
- non-8-bit byte architecture आधुनिक C++ के साथ compatible नहीं हैं, और ऐसी architecture का महत्व घट रहा है
- यह प्रस्ताव C++ की complexity को कम करता है और नए programmer के लिए भाषा को समझना आसान बनाता है
- समान प्रकृति वाले अन्य project में POSIX standard शामिल है
1 टिप्पणियां
Hacker News की राय
JF की "Can we acknowledge that every real computer works this way?" सीरीज़ में "Signed Integers are Two’s Complement" का उल्लेख था
D language ने निम्न बिंदुओं में बड़ा सुधार किया
कुछ लोग अब भी DSP के साथ काम कर रहे हैं
व्यक्तिगत रूप से, "प्रतिद्वंद्वियों की तुलना में प्रति byte 50% अधिक bits" देने वाले 12-bit fantasy console को document करने में मज़ा आ रहा है
यह सवाल था कि C++ क्या हटा सकता है या सरल बना सकता है
rand()function टूटा हुआ है और इसे ठीक नहीं किया जा सकता, और यह भी सुना कि अब तक इसे deprecated नहीं किया गया हैइस बात को लेकर मिश्रित भावनाएँ हैं कि
CHAR_BITका 8 के अलावा कुछ और होना किसी सार्थक उपयोग में नहीं आताप्रस्ताव में रुचि के लिए धन्यवाद, और feedback के आधार पर एक updated draft लिखा गया
6-bit byte retro microcomputer का विचार पसंद है
int8_t == char == 8 bitsको मजबूर करने से सहमत हूँ, लेकिन यह गलतफहमी फैलाने को लेकर आश्वस्त नहीं हूँ कि byte 8-bit होता है