इसका मतलब यह है कि कंपाइलर टेम्पलेट क्लास को संकलित करने के लिए दो चरण लुकअप का उपयोग कर रहा है?दो चरण लुकअप - स्पष्टीकरण की आवश्यकता
उत्तर
टेम्पलेट्स संकलित किए जाते हैं (कम से कम) दो बार:
आरंभ होने के बिना टेम्पलेट कोड में ही वाक्य रचना के लिए जाँच की है।
उदाहरण के लिए: इस तरह के;
आदिइन्स्टेन्शियशन के समय (जब सही प्रकार में जाना जाता है) पर के रूप में किसी भी वाक्यविन्यास त्रुटियों त्रुटियों, टेम्पलेट कोड फिर से सुनिश्चित करने के लिए सभी कॉल्स उस विशेष प्रकार के लिए मान्य हैं चेक किया गया है।
उदाहरण: टेम्पलेट उन कार्यों को कॉल कर सकता है जो उस विशेष प्रकार के लिए मौजूद नहीं हो सकते हैं।
इसे दो चरण लुकअप कहा जाता है।
यह भी ध्यान रखें कि गैर-निर्भर नामों के लिए खोज पहले चरण में किया जाता है, जबकि टेम्पलेट पैरामीटर पर निर्भर नामों के लिए खोज दूसरे में किया जाता है अवस्था। महत्व यह है कि यदि आप 'sqrt (1)' कहते हैं, तो टेम्पलेट परिभाषित होने से पहले 'sqrt' घोषित करने की आवश्यकता है। लेकिन अगर आप 'sqrt (t)' कहते हैं, जहां 't' एक प्रकार का उदाहरण है जो टेम्पलेट पैरामीटर है, तो टेम्पलेट को तत्काल होने तक' sqrt' दिखाई नहीं देनी चाहिए। एमएसवीसी ने इसे सही तरीके से करने के लिए उपयोग नहीं किया: अभी भी मुझे पता नहीं है। –
वैसे भी, यही कारण है कि इसे केवल दो चरण संकलन या कुछ के विपरीत दो चरण * लुकअप * कहा जाता है। पहला चरण केवल सिंटैक्स की जांच करने से अधिक करना है, लेकिन एमएस को पहले लुकअप चरण को लागू करने में कुछ कठिनाई थी, इसलिए उन्होंने तुरंत इसे तुरंत किया: http://stackoverflow.com/questions/6273176/what-exactly-is माइक्रोसॉफ्ट-विज़ुअल-सीएस-दो-चरण-टेम्पलेट-तत्काल –
@ स्टेवजेसॉप: यह और अधिक लगता है - कुंजी दो चरण लुकअप का "लुकअप" हिस्सा है। धन्यवाद! –
- 1. जावास्क्रिप्ट प्रोटोटाइप स्पष्टीकरण की आवश्यकता
- 2. माइस्क्ल डेडलॉक स्पष्टीकरण की आवश्यकता
- 3. CGPointMake स्पष्टीकरण की आवश्यकता है?
- 4. सी ++ नाम लुकअप पर स्पष्टीकरण
- 5. पेजरैंक और इसके गणित: स्पष्टीकरण की आवश्यकता
- 6. सिम्फनी 2.0 चरण-दर-चरण ट्यूटोरियल की आवश्यकता है
- 7. आईओएस में प्रतिनिधियों - कुछ स्पष्टीकरण की आवश्यकता
- 8. एक्सकोड सी ++ विकास, स्पष्टीकरण की आवश्यकता
- 9. JavaCV FFmpegFrameRecorder गुण स्पष्टीकरण की आवश्यकता
- 10. "कमजोर संदर्भ": पृथ्वी पर स्पष्टीकरण की आवश्यकता
- 11. नियंत्रक बनाम मॉडल - स्पष्टीकरण की आवश्यकता है
- 12. कतार पूर्ण, अवरुद्ध कतार की गहराई पर, स्पष्टीकरण की आवश्यकता
- 13. दो चरण प्रतिबद्ध
- 14. मेवेन चरण दो बार निष्पादित
- 15. दो चरण प्रसंस्करण: चरण -1 एक्सएसएलटी 2.0 प्रसंस्करण
- 16. क्या स्मार्ट पॉइंटर्स दो चरण के निर्माण की आवश्यकता को रोकते हैं?
- 17. जावा कोड का टुकड़ा उत्पादन स्पष्टीकरण की आवश्यकता
- 18. कैश लाइन संरेखण (आलेख पर स्पष्टीकरण की आवश्यकता है)
- 19. अजगर योग समारोह - `start` पैरामीटर स्पष्टीकरण की आवश्यकता
- 20. सी ++ पॉइंटर्स और संदर्भों पर, स्पष्टीकरण की आवश्यकता
- 21. FLAG_ACTIVITY_NEW_TASK स्पष्टीकरण की जरूरत
- 22. CompilerPass की Symfony2 स्पष्टीकरण?
- 23. एलोक्वेंट जावास्क्रिप्ट की खोज पर्याप्तता स्पष्टीकरण
- 24. उद्देश्य सी वस्तुओं के दो चरण निर्माण
- 25. अग्रेषित घोषित टेम्पलेट कार्यों की आवश्यकता
- 26. नेटबीन की लुकअप क्या है?
- 27. Django 1.4 फॉर्म विज़ार्ड का उपयोग करने पर स्पष्टीकरण की आवश्यकता है, विशेष रूप से
- 28. दो शाखाओं के संघर्ष की जांच कैसे करें, लेकिन उन्हें मर्ज करने की आवश्यकता नहीं है?
- 29. प्रथम प्रत्युत्तर स्पष्टीकरण की जरूरत
- 30. System.out पर, स्पष्टीकरण की जरूरत
@ नवाज मैंने केवल दो चरण लुकअप सुना है, क्या मुझे कुछ याद आ रही है? – smallB
इस विषय पर एक संक्षिप्त और उपयोगी आलेख http://blog.llvm.org/2009/12/dreaded-two-phase-name-lookup.html –
पर भी पाया जा सकता है http://stackoverflow.com/a/10171507/76722 और http://stackoverflow.com/a/7241548/76722 –