2015-11-27 81 views
5

我試圖專注一類模板的一個特例中的一個函數,但找不出正確的語法功能模板的顯式特m試圖爲char專門設置fnFoo專用於int。但編譯器不喜歡我寫的東西。那麼正確的語法應該是什麼?一個完全專業類模板

回答

6

你不一定要說你專精兩次。

你只在這裏專門

template<> void Foo<int>::fn<char>() {} 

Live On Coliru

template< typename T > 
struct Foo {}; 

template<> 
struct Foo<int> 
{ 
    template< typename T > 
    void fn(); 
}; 

template<> void Foo<int>::fn<char>() {} 

int main() { 
    Foo<int> f; 
    f.fn<char>(); 
} 
+1

令人驚訝的是一個函數模板時,編譯器的錯誤信息是點上。 –