1
template<unsigned number>
struct A
{
template<class T>
static void Fun()
{}
};
而且要專注一個< 1> ::樂()
template<>
A<1>::Fun<int>()
{
/* some code here. */
}
不起作用。怎麼做?謝謝。
template<unsigned number>
struct A
{
template<class T>
static void Fun()
{}
};
而且要專注一個< 1> ::樂()
template<>
A<1>::Fun<int>()
{
/* some code here. */
}
不起作用。怎麼做?謝謝。
首先,你忘了指定函數的返回類型(void
)。其次,你需要有兩個template<>
:其中一個是因爲你顯式地專門化了類模板,另一個是因爲你顯式地專門化了它的成員函數模板。
因此,這是正確的語法:
template<> // Because you are explicitly specializing the A class template
template<> // Because you are explicitly specializing the `Fun()` member template
void A<1>::Fun<int>()
{
/* some code here. */
}
因爲A是一個模板嗎? –
@huseyintugrulbuyukisik:正確 –
@AndyProwl它的工作原理!我編輯了這個問題,它更復雜。請幫我看看?謝謝。 – user1899020