सी ++ 14 में अन्य बातों के अलावा, std :: string
& lt; chrono & gt;
शीर्ष लेख।
उनको प्रयोग करने के लिए आपको नामस्थान std :: literals का उपयोग करना चाहिए;
(या कुछ भिन्नता के आधार पर बिल्कुल वैसी ही लीटरल पर, जैसा कि वे इनलाइन नामस्थानों की एक किस्म में हैं)।
यह सब अच्छा है, लेकिन मैं इस बात के लिए उत्सुक हूँ कि क्यों का उपयोग
घोषणा है की आवश्यकता है। एक प्रमुख अंडरस्कोर के बिना यूडीएल को कार्यान्वयन के लिए आरक्षित किया गया है, इसलिए कोई भी संभावना नहीं है कि "हैलो वर्ल्ड"
का उपयोग मानक-अनुरूप कार्यक्रम में कुछ भी हो सकता है।
तो क्यों क्या #include & lt; स्ट्रिंग & gt;
को मौलिक रूपांतरण फ़ंक्शन लाने के लिए पर्याप्त नहीं है? मुझे स्पष्ट रूप से शाब्दिक नाम स्थान क्यों शामिल होना चाहिए?
संपादित करें: मुझे मिल सकता है प्रस्ताव का सबसे हाल का संस्करण है - दुर्भाग्य से इसमें चीजों को डालने के लिए प्रेरणा की चर्चा नहीं की जाती है एक नाम स्थान मात्र केवल कहते हैं:
एक [पोर्टलैंड] चर्चा की आवश्यकताओं को संक्षेप में निम्नानुसार हो सकता है:
- संबंधित के एक इनलाइन नेमस्पेस ) यूडीएल ऑपरेटर
क्योंकि यह आसानी से संघर्ष उत्पन्न करता है, क्योंकि नाम एक एकल वर्ण है असल में, वहां पहले से ही दो यूडीएल हैं, जिनका नाम s
है: स्ट्रिंग के लिए एक और एक के लिए। समस्या यह है कि किसी भी अवस्था में, हमें या तो अयोग्य, लंबी प्रत्यय का उपयोग करने या पूर्वव्यापी नामों का उपयोग करने के लिए मजबूर किया जाता है, जो दोनों गन्दा विकल्प हैं।
इसलिए यह तय किया गया कि यूडीएल को इनलाइन नामस्थानों में रखा गया है, जो दोनों < निहित
निर्देशों ( नामस्थान का उपयोग कर std :: literals :: chrono_literals
) और सरल निर्देश ( नामस्थान std
का उपयोग करके] दोनों के लिए अनुमति दें।
Comments
Post a Comment