मैं देखते रहो, लेकिन ऐसा लगता है कि इन के समर्थन में संकलक डेवलपर्स से शून्य ब्याज है जैसे।क्या कोई मुख्यधारा के कंपाइलर निकट भविष्य में सी ++ 0x अप्रतिबंधित संघों का समर्थन करने की संभावना है?
मेरे लिए, यह अजीब लगता है - मूल रूप से, वर्तमान सी ++ यूनियनों, जो हमेशा किसी जलन और कभी नहीं उपयुक्त थे पर प्रतिबंध है। आपको लगता है कि मूल रूप से कुछ त्रुटि जांच को निकालने के लिए एक अतिरिक्त सी ++ 0x समर्थन बॉक्स को चेक करने का अपेक्षाकृत सरल तरीका होगा, लेकिन AFAICT कोई कंपाइलर डेवलपर अभी तक ऐसा नहीं कर पाए हैं।
क्यों मुझे इसमें रुचि है, क्योंकि यह डेटा संरचना कोडिंग में एक आवर्ती समस्या के लिए एक सरल समाधान प्रदान करता है - कैसे किसी अज्ञात (टेम्पलेट पैरामीटर) का एक उदाहरण के लिए स्मृति आरक्षण अधिमानतः टाइप करें, में जितना संभव हो उतना प्रकार सुरक्षा के साथ परिस्थितियों, लेकिन किसी भी रचनाकार का आह्वान किए बिना जो उस प्रकार पर परिभाषित किया जाता है। वास्तव में महत्वपूर्ण बात यह है कि संरेखण नियमों का पालन किया जाना चाहिए।
एक अप्रतिबंधित संघ इस लिए एकदम सही है - यह आप एक प्रकार है जो कोई कंस्ट्रक्टर्स या विनाशकर्ता है देता है, लेकिन जो सही आकार और संरेखण किसी भी सदस्य अनुमति देने के लिए है। आवश्यकता होने पर स्पष्ट रूप से निर्माण और विनाश के तरीके हैं, और जब आपको टाइपएफ़ एक्सेस की आवश्यकता होती है, तो आप इसे एक्सेस करने के लिए उचित संघ सदस्य का उपयोग करते हैं। "उचित" यूनियनों के लिए समर्थन भी उपयोगी हो सकता है, लेकिन आप भी इस तरह के रूप में एक एकल सदस्यीय संघ के लिए बहुत बड़ा लाभ मिल ...
union Memory_For_Item_t
{
Item_t m_Item;
};
यहां तक कि C++ 0x में मानकीकृत संरेखण हैंडलिंग सुविधाओं के साथ
, इस दृष्टिकोण उदाहरण के लिए सुविधा और सुरक्षा के लिए जीतता है आप एक नोड में एक्स वस्तुओं के लिए जगह चाहते हैं, जिनमें से सभी किसी भी समय उपयोग (या निर्मित) में नहीं होंगे। सी ++ 0x के बिना, हम अभी भी अंधेरे युग डब्लूआरटी संरेखण के मुद्दों में हैं - हर कंपाइलर इसका अपना गैर-मानक तरीका करता है।
अप्रतिबंधित यूनियनों के साथ ही समस्या - वहाँ उनके लिए कोई समर्थन है कि मैं मिल सकता है।
हाँ - मेरे पास अब एक टेम्पलेट दृष्टिकोण है, लेकिन यह कंप्रेसर और अन्य नास्टनेस की पहचान करने के लिए प्रीप्रोसेसर सशर्त पर निर्भर करता है, मुख्य रूप से संरेखण को सही तरीके से संभालने के लिए। आओ यह भंगुर और आम तौर पर बुरा है, और जितनी जल्दी मैं इसे बेहतर बदल सकता हूं। – Steve314
हम्म - इट्रेस्टिंग टेबल, लेकिन केवल तीन पूरी तरह खाली रिक्त पंक्तियों में से एक को केवल उस सुविधा के लिए होना चाहिए जिसकी मैं सबसे अधिक उम्मीद कर रहा हूं। ओह ठीक है - lamda अभिव्यक्तियों और बंद हो जाएगा अच्छा, मुझे लगता है। – Steve314