2012-02-05 3 views
5

मैं दृश्य स्टूडियो के डेवलपर पूर्वावलोकन के साथ खेल रहा हूँ 11.कितने तर्क एसटीडी :: बाँध (वीसी 11 केवल का समर्थन करता है 4)

कम आने मैं पर ठोकर खाई किया है में से एक एसटीडी है :: केवल 4 फ़ंक्शन तर्कों का समर्थन करें।

मुझे सी ++ 11 मानकों के पेपर में इसके बारे में कुछ भी नहीं मिला। क्या कम से कम तर्कों को परिभाषित किया गया है, या यह कि सभी कार्यान्वयन निर्भर हैं?

उत्तर

0

यह कुछ कार्यान्वयन निर्भर मूल्य है। यदि आप तर्कों की संख्या से अधिक हो तो कार्यान्वयन केवल कुछ अन्य मूर्ख चीजों को क्रैश या कर सकते हैं। वास्तविक सी ++ 11 कार्यान्वयन यहां विविध चर टेम्पलेट का उपयोग करते हैं (वीसी ++ में अभी तक यह सुविधा नहीं है), इसलिए उनकी सीमाएं सभी के लिए पर्याप्त से अधिक होनी चाहिए।

यह अपरिभाषित व्यवहार का एक मामला है, कार्यान्वयन सीमा से अधिक है। कंपाइलर में फ़ीड करने की कोशिश कर रहे 1TB फ़ाइल और यह स्मृति से बाहर चलने की कोशिश करने से अलग नहीं है।

+0

'std :: bind' variadic है और 'tr1 :: bind' कार्यान्वयन-परिभाषित धैर्य का है, नहीं? नाम गलत दिखता है। – spraff

+0

@spraff दोनों टेम्पलेट तर्कों की संख्या और फ़ंक्शन तर्कों की संख्या कार्यान्वयन विशिष्ट सीमाओं के अधीन हैं। –

2

दरअसल, यह वीसी 11 का एक निहितार्थ है जो अभी तक वैरिएड टेम्पलेट का समर्थन नहीं कर रहा है। हालांकि वे चार से अधिक कठिन कोड कर सकते थे। बूस्ट लाइब्रेरी इस समय बॉयलरप्लेट के साथ दस तर्कों के लिए ऐसा करते हैं (विवरण निर्देशिका में उदाहरण के लिए सिग्नल 2 जांचें)। चार तर्कों के साथ रोकने के लिए एक भयानक छोटी संख्या है।

7

वीसी 11 में, आप _VARIADIC_MAX सेट करके variadiac टेम्पलेट्स इम्यूलेशन योजना द्वारा उपयोग किए जाने वाले अधिकतम तर्कों की संख्या को क्रैंक कर सकते हैं। डिफ़ॉल्ट है 5.

यहाँ देखें: http://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx

आप और अधिक बहस की जरूरत है (उदाहरण के लिए आप VC9 SP1 या VC10 कि इस्तेमाल किया 6-tuples के साथ संकलन कोड था), वहाँ तो अब बचने का है। आप 512 और 10 के बीच _VARIADIC_MAX प्रोजेक्ट-व्यापी परिभाषित कर सकते हैं (यह 5 तक डिफ़ॉल्ट है)। इसे बढ़ाने से कंपाइलर अधिक मेमोरी का उपभोग कर सकता है, और आपको पीएचसीएस के लिए अधिक जगह आरक्षित करने के लिए/Zm विकल्प का उपयोग करने की आवश्यकता है।

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