"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > Microsoft Visual C ++ दो-चरण टेम्पलेट तात्कालिकता को सही ढंग से लागू करने में विफल क्यों होता है?

Microsoft Visual C ++ दो-चरण टेम्पलेट तात्कालिकता को सही ढंग से लागू करने में विफल क्यों होता है?

2025-03-09 पर पोस्ट किया गया
ब्राउज़ करें:290

तंत्र के कौन से विशिष्ट पहलू अपेक्षित रूप से संचालित करने में विफल होते हैं? हालाँकि, इस बारे में संदेह उत्पन्न होता है कि क्या यह चेक सत्यापित करता है कि क्या टेम्प्लेट के भीतर उपयोग किए गए नामों को उचित रूप से घोषित किया गया है। यह घोषित नामों की उपस्थिति के लिए जांच करने में विफल रहता है, जब नामों को उचित घोषणाओं की कमी होती है, तो संकलन मुद्दों के लिए अग्रणी होता है। टेम्पलेट संरचना एस { S () {int i = foo (0); } }; शून्य फू (int); मुख्य प्रवेश बिंदु() { S s; } Why Does Microsoft Visual C   Fail to Correctly Implement Two-Phase Template Instantiation?

एक मानक-अनुपालन संकलक पहले चरण के दौरान फू (0) कॉल को हल करेगा और इसे फू (शून्य*) से बांध देगा। हालाँकि, MSVC इस प्रक्रिया को दूसरे चरण में स्थगित कर देता है, गलत तरीके से फू (0) को फू (int) के लिए बाध्य करता है और परिणामस्वरूप एक त्रुटि होती है। चरण। संरचना s {}; } शून्य बार (शून्य *) {} टेम्पलेट & lt; typename t & gt; शून्य फू (टी *टी) { बार (टी); } शून्य बार (n :: s *s) {} मुख्य प्रवेश बिंदु() { N :: s; फू (& amp; s); }

दोनों मामलों में, MSVC का व्यवहार टेम्पलेट तात्कालिकता के पहले और दूसरे चरणों के बीच निर्दिष्ट पृथक्करण का उल्लंघन करता है। यह गलत कार्यान्वयन विजुअल स्टूडियो 2015 में बना रहता है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3