2010-08-13 30 views
7

एक टेम्पलेट टेम्पलेट विनिर्देश इस तरह है? क्या यह संभव है?टेम्पलेट टेम्पलेट कुल विशेषज्ञता

+1

... कहीं रोमांचक! मैं इंतजार नहीं कर सकता! –

+0

दुनिया में किसने मतदान करने के लिए वोट दिया, और क्यों? यह एक पूरी तरह से वैध, सामयिक सवाल प्रतीत होता है। –

+0

@ जेरी: यदि आपने प्रश्न के पहले 30 सेकंड (जहां वोट डाला गया था) देखा, तो यह समझ में आएगा। यह सिर्फ {{'बिना किसी सवाल के कोड था। मैंने टिप्पणी की: "'}; // आप इसके साथ कहां जा रहे हैं? "" जिस पर @ जॉन ने जवाब दिया। लेकिन यह अभी तय है। :) – GManNickG

उत्तर

5
इस तरह

:

#include <iostream> 

template <typename T> 
struct foo{}; 

template <typename T> 
struct bar{}; 

template < template <class> class T > 
struct MyTemplate 
{ 
    static const bool value = false; 
}; 

template <> 
struct MyTemplate<bar> 
{ 
    static const bool value = true; 
}; 


int main(void) 
{ 
    std::cout << std::boolalpha; 
    std::cout << MyTemplate<foo>::value << std::endl; 
    std::cout << MyTemplate<bar>::value << std::endl; 
} 
+0

जीएमएन, माईटेम्प्लेट विशेषज्ञता पर लागू करने का एक तरीका है किस प्रकार टीटी बार की अपेक्षा करनी चाहिए? – scooterman

+0

@ स्कॉटमैन: अच्छी तरह से अपनी कक्षा में आप केवल 'बार ' का उपयोग करेंगे और यह काम करेगा या नहीं। अगर मैं आपका प्रश्न सही ढंग से समझ रहा हूं। – GManNickG

3

इस का एक विशेषज्ञता, उदाहरण के लिए, होगा:

template<> 
struct MyTemplate<std::auto_ptr> { 
    // ... 
}; 
संबंधित मुद्दे