2
模板參數
比方說,我有一個模板類模板作爲專業化
template<typename T>
class MyClass{
//...
}
現在我要聲明功能:
template<typename U, typename M>
void foo(U first, M second){
//...
}
現在我需要寫這個函數,它接受的MyClass一個specjalization作爲第二個模板參數。我試圖寫這樣的東西
template<typename U, typename M>
void foo(U first, template<typename T> MyClass<T> second){
//...
}
不幸的是,它不起作用。你有什麼sugestions如何做到這一點?
我已經定義 模板 MyClass類{ // ... }; 模板 無效美孚(U第一,M個第二){ } 模板 無效美孚(U第一,MyClass的第二){ } 但是對於像foo > MyClass >(obj1,obj2)這樣的調用,它調用一個非專用函數,其中obj1和obj2是MyClass的對象 –
Matimath
@Matimath這是因爲您提供了顯式模板參數,它們不允許選擇更專功能。做'foo(obj1,obj2)'或'foo,int>(obj1,obj2)'。 –
aschepler