4
我有了一個需要的專業,如在模板成員函數模板類:專門研究模板類的模板成員函數?
template <typename T>
class X
{
public:
template <typename U>
void Y() {}
template <>
void Y<int>() {}
};
Altough VC可以正確處理此,apperantly這不是標準,GCC抱怨:explicit specialization in non-namespace scope 'class X<T>'
我嘗試過:
template <typename T>
class X
{
public:
template <typename U>
void Y() {}
};
template <typename T>
// Also tried `template<>` here
void X<T>::Y<int>() {}
但是這會導致VC和GCC抱怨。
什麼是正確的方法來做到這一點?
感謝。不幸的是,我的模板參數實際上是一個整數(如'模板'),不認爲它會有所作爲。有任何想法嗎? –
uj2
2010-06-14 19:56:06
只是用'int N'替換'typename T'和'U',而且你服務得很好:)這就像打字方式一樣工作。 – 2010-06-14 19:58:25
@ JohannesSchaub-litb,如果'T'和一個非類型模板arg都被*使用了?如在類中,類是'template',但函數是'template ',並且您希望專門爲該函數上的'<0>',同時保持類在'T'上打開。那可能嗎?謝謝。 –
WhozCraig
2014-09-09 11:51:32