0
簡短的問題,這些定義是相同的嗎?模板定義語法
1.
template<class T1>
template<class T2>
void function(T1 *a, T2*b);
2.
template<class T1,class T2>
void function(T1 *a, T2*b);
簡短的問題,這些定義是相同的嗎?模板定義語法
1.
template<class T1>
template<class T2>
void function(T1 *a, T2*b);
2.
template<class T1,class T2>
void function(T1 *a, T2*b);
不,他們是不一樣的。第一種情況不會作爲免費函數編譯(live example)。通常,當你有一個模板類,你必須在這一個函數,另一個模板參數
template <typename T1>
class Foo
{
public:
template<typename T2>
void function(T1 *a, T2*b);
};
template<class T1>
template<class T2>
void Foo<T1>::function(T1 *a, T2*b);
你的第二個例子是蠻好的,與兩個模板參數的函數,你要做的第一案。
不,第一個甚至沒有編譯。 –
爲什麼這會被投票? – PnotNP