2011-06-03 12 views
7

ओवरलोड (या वास्तव में जो कुछ भी है) std::hex के लिए सही वाक्यविन्यास क्या है, ताकि इसकी कार्यक्षमता गैर मानक पूर्णांक तक बढ़ाया जा सके? मैंने uint128_tमैं अपने कस्टम uint128 प्रकार के लिए std :: हेक्स का उपयोग कैसे कर सकता हूं?

+0

यदि आपका कंपाइलर uint128 का समर्थन करता है, तो यह शायद बॉक्स के बाहर समर्थित है। –

+0

संख्या। मैंने खुद को uint128_t लिखा – calccrypto

+1

@calccrypto: ओह। वैसे तो आपको शायद यह संकेत देना चाहिए कि आपके प्रश्न में, कई कंपाइलर 128 बिट पूर्णांक प्राइमेटिव प्रदान करते हैं। एमएसवीसी ++, उदाहरण के लिए, 64 बिट के रूप में संकलित करते समय '__int128' प्रदान करता है। –

उत्तर

8

std :: हेक्स यह संस्करण केवल एक मैनिपुलेटर है जो स्ट्रीम पर कुछ स्वरूपण झंडे सेट करता है। आप उन्हें ios_base :: flags() का उपयोग करके प्राप्त कर सकते हैं और परिणाम को अपने ऑपरेटर < < में उपयोग कर सकते हैं। आपको शायद ios_base :: चौड़ाई और ios_base :: परिशुद्धता का भी उपयोग करना चाहिए।

यदि आप प्रदान की गई तुलना में अधिक सेटिंग्स चाहते हैं, तो ios_base :: xalloc, ios_base :: iword, ios_base :: कीवर्ड आपके मैनिपुलेटर्स और डालने वालों के लिए एक्सटेंशन का मार्ग प्रस्तुत करता है।

+0

+1। मैन मैं इस जटिलता से नफरत करता हूं कि एक सरल उपयोगकर्ता परिभाषित फॉर्मेटर जोड़ें। कम से कम [मुझे एक बेहतर तरीका मिला] (http://stackoverflow.com/questions/6171360/what-serious-alternatives-exist-for-the-iostream-library-bafter-cstdio)। –

+0

+1 मैं इस सटीक प्रतिक्रिया को लिखकर आधा रास्ते था। –

संबंधित मुद्दे

 संबंधित मुद्दे