2010-08-13 10 views
7

bir şablon şablon şartname şu şekildedir:şablon şablon toplam uzmanlaşma

template < template <class> class T > 
struct MyTemplate 
{ 
}; 

Bu şablon için toplam (veya kısmi) uzmanlık oluşturmak için nasıl yapayım? Bu mümkün mü?

+1

... Bir yerlerde heyecanlı! Bekleyemem! –

+0

Dünyada kimler kapandı ve neden? Bu gayet meşru, topikal bir soru gibi görünüyor. –

+0

@Jerry: Sorunun ilk 30 saniyesini gördüyseniz (oy kullanıldıysa), bu mantıklı olacaktır. Sadece soruya cevap vermeyen bir koddu. Yorumu yaptım: "'}; // bununla nereye gidiyorsunuz? "" @John yanıtladı. Ama şimdi düzeltildi. :) – GManNickG

cevap

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

GMan, MyTemplate uzmanlığını zorlamak için ne tür bir ot beklemesi gerekiyor? – scooterman

+0

@scooterman: Sınıfınızda, sadece çubuğunu kullanacaksınız ve işe yarayacak ya da olmayacak. Sorunuzu doğru anlıyorsam. – GManNickG

3

Bunun bir uzmanlaşma, örneğin, şöyle olacaktır: Bunun gibi

template<> 
struct MyTemplate<std::auto_ptr> { 
    // ... 
};