मैं आईसीयू या बूस्ट लोकेल का उपयोग करने पर विचार कर रहा हूं।आईसीयू बनाम बूस्ट लोकेल सी ++
प्रत्येक के पेशेवर और विपक्ष क्या हैं?
मैं समझता हूं कि दोनों आईसीयू का उपयोग करते हैं, लेकिन आईसीयू बूस्ट लोकेल द्वारा छिपा हुआ है। Boost Locale's rationale page के अनुसार: "... संपूर्ण आईसीयू एपीआई अपारदर्शी पॉइंटर्स के पीछे छिपा हुआ है और उपयोगकर्ताओं के पास इसका कोई उपयोग नहीं है।"
कृपया इन पुस्तकालयों की तुलना करते समय सी ++ 11 में नई यूनिकोड सुविधाओं पर विचार करें।
बहुत अच्छा सारांश, निश्चित रूप से +1। ध्यान दें कि यदि आपको केवल साधारण/मूलभूत सामग्री की आवश्यकता है तो "शर्मीली तरह का अंतर्राष्ट्रीयकरण ठीक हो सकता है। प्रत्येक एप्लिकेशन को i18n के लिए आईसीयू की तरह कुछ नहीं चाहिए। और यदि आप आधुनिक सी ++/बूस्ट शैली में उपयोग करते हैं, तो आईसीयू का सी ++ एपीआई काफी दर्दनाक है। – jalf
-1। ओपी आईसीयू और * बूस्ट.लोकेल * के बीच तुलना चाहता है। 'बूस्ट जैसी चीजें कहने से अंतर्राष्ट्रीयकरण बहुत गलत हो जाता है [...] बूस्ट पुस्तकालयों का एक बड़ा संग्रह है, और कुछ दूसरों की तुलना में बेहतर करते हैं "बिंदु के बगल में पूरी तरह से है। बूस्ट.लोकेल एक पुस्तकालय है जिसे आईसीयू और जीएनयूजीटेक्स्ट लपेटना है , सवाल कितना अच्छा है? क्या सीधे आईसीयू का उपयोग करना बेहतर होगा या नहीं? –
उत्तर का अर्थ है आईसीयू सीधे। चूंकि बूस्ट.लोकेल एक रैपर है, यह केवल आईसीयू या बदतर के रूप में अच्छा हो सकता है। आईसीयू की तुलना में बेहतर सी ++ की तरह दिखें, लेकिन अतिरिक्त बग भी पेश कर सकते हैं (मुझे उन परिस्थितियों के बारे में पता है जहां मैक ओएस एक्स एपीआई रैपिंग आईसीयू ने आईसीयू में नहीं की गई बग पेश की है)। इसके अलावा, बूस्ट.लोकेल यूटीएफ -8 को सभी तरह से चलाता है।चूंकि आईसीयू यूटीएफ -16 पर काम करता है, इसका मतलब है कि सभी कॉलों को यूटीएफ -8 को यूटीएफ -16 रूपांतरण और बैक, मैप स्ट्रिंग ऑफ़सेट आदि करना है। एक प्रदर्शन हिट, और त्रुटि प्रवण। –