2010-11-02 3 views
12

मैं टेम्पलेट कीवर्ड के बारे में कोई जानकारी खोजने की कोशिश कर रहा हूं जो असंबद्ध के रूप में उपयोग किया जाता है, लेकिन इसके बारे में कुछ भी नहीं है। शायद मैं गलत कीवर्ड खोज रहा हूं, लेकिन मानक में टेम्पलेट या - टेम्पलेट जैसे कुछ भी नहीं है। Google विभिन्न मंचों से केवल जीसीसी समस्याओं को दिखाता है, लेकिन वास्तव में स्पष्टीकरण नहीं है कि इसका क्या उपयोग किया जाता है।टेम्पलेट डिसंबिगुएटर

कोड कोड 11 (जीसीसी पर) पर टेम्पलेट कीवर्ड के बिना संकलित करने में विफल रहा, लेकिन मुझे पूरा यकीन नहीं है कि यह मानक अनुरूप है।

template<typename B> 
struct S1 
{ 
    template<typename T> void test() {} 
}; 

template<typename T> 
struct S2 
{ 
    S2() 
    { 
     S1<T>().template test<int>(); 
    } 
}; 

int main() 
{ 
    S2<int>(); 
} 

तो मेरे सवाल है: क्यों टेम्पलेट कीवर्ड यहां इस्तेमाल किया, अस्पष्टता की किस तरह उस कीवर्ड के बिना वहाँ है और मैं (मैं वास्तव में मानक के लिए लिंक की सराहना करेंगे) इस बारे में जहां पढ़ सकते हैं करता है।

धन्यवाद।

+0

@ प्र्रासून: मुझे पता है कि 'टेम्पलेट' कीवर्ड का उपयोग करने वाले कई सवाल जवाब थे, लेकिन मुझे सीधे कोई सवाल नहीं मिला। –

+0

@ Space_C0wb0y: क्षमा करें मैंने अपनी पिछली टिप्पणी हटा दी है। –

+0

आप इसे भी पढ़ना चाहेंगे: http://stackoverflow.com/questions/3786360/confusing-template-error/3786726#3786726 –

उत्तर

8

लघु जवाब: मानक इसलिए कहते हैं क्योंकि

आईएसओ सी ++ 03 14.2/4

एक सदस्य टेम्पलेट विशेषज्ञता के नाम के बाद दिखाई देता है। या -> एक पोस्टफिक्स-अभिव्यक्ति में, या एक योग्य-आईडी में नेस्टेड-नाम-विनिर्देशक के बाद, और पोस्टफिक्स-अभिव्यक्ति या योग्य-आईडी स्पष्ट रूप से टेम्पलेट-पैरामीटर (14.6.2) पर निर्भर करती है, सदस्य टेम्पलेट का नाम होना चाहिए कीवर्ड टेम्पलेट द्वारा prefixed। अन्यथा नाम गैर-टेम्पलेट नाम देने के लिए माना जाता है।

पी.एस:

टेम्पलेट के उस अतिरिक्त उपयोग के बिना, संकलक नहीं जानता है कि टोकन (<) से कम इस प्रकार है कि वास्तव में नहीं है "से कम" लेकिन एक टेम्पलेट तर्क सूची की शुरुआत।

+4

शायद मुझे अपने पीडीएफ रीडिंग सॉफ़्टवेयर को बदलने की ज़रूरत है :) बस उस पाठ के बाद उदाहरण है -> टेम्पलेट, जो मेरा सॉफ़्टवेयर ढूंढने में विफल रहा। बहुत बहुत धन्यवाद। बस इतना ही। – confucius

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