2011-06-27 10 views
11

की तरह मैं एक कोड हैनेस्टेड-नाम-विनिर्देशक

.hpp:20: error: expected nested-name-specifier before ‘_myPair’ 
.hpp:20: error: two or more data types in declaration of ‘_myPair’ 

मैं क्या कर रहा हूँ गलत कर रहे हो

+2

क्या आपने वास्तव में जीसीसी के साथ इस कोड का परीक्षण किया था? आप myownmap से पहले एक वर्ग/संरचना खो रहे हैं और "प्रविष्टियोंपैयर" आपके स्निपेट में कहीं भी नहीं होता है। – Philipp

+0

क्या आप हमें 'प्रविष्टियांपेयर' की परिभाषा दिखा सकते हैं? –

+0

'myownmap' क्या है? क्या यह एक समारोह या वर्ग है? – iammilind

उत्तर

16

typename की आवश्यकता नहीं है, और इसलिए इसकी अनुमति नहीं है।

एमएसवीसी वास्तव में उपयोग किए जाने तक टेम्पलेट्स को सही तरीके से पार्स नहीं करता है, इसलिए कुछ त्रुटियां बाद में नहीं मिलती हैं।

3

"अपेक्षित नेस्टेड-नाम-विनिर्देशक" का अर्थ है कि typename कीवर्ड के बाद आपको टेम्पलेट पैरामीटर के कुछ नेस्टेड नाम का उपयोग करने की उम्मीद है, उदाहरण के लिए typedef typename Key::iterator ...। आपके मामले में आपको typename का उपयोग करने की आवश्यकता नहीं है।

4
typedef pair<const unsigned int, Key> /*typename*/ _myPair; 
             ^^^^^^^^^^^^ not needed 

gcc-4.5 output here देखें। (यह myownmapclass या फ़ंक्शन के लिए सच है)

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

  • कोई संबंधित समस्या नहीं^_^