我有一些代碼大量使用模板類。這是可能的,但不希望在這一點上改變現有的代碼庫。我需要編寫一個新的類,這個類將作用於兩個模板類(就這個問題而言)是任意的,除了有一個通用模板參數。一個簡單的例子:鏈接的模板模板參數 - 約束內部參數是相同的
template<typename T>
class A {
// Implementation details
};
template<typename T>
class B {
// Implementation details
};
template<typename T, typename X<T>, typename Y<T>> // This syntax is invalid!
class C {
// Implementation details
};
我需要寫類C
。示例中顯示的語法提示我想要做什麼,但不起作用。這裏的模板參數X
和Y
必須通過採用相同的模板參數T
「綁在一起」。除此之外,它們可以是任意的。
這意味着什麼「喜歡」 C<std::string,A<std::string>,B<std::string>>
應該是有效的,但C<std::string,A<std::string>,B<std::map>>
不應該因爲A
和B
不具有相同的模板參數。 (「喜歡」的報價再次表示語法仍然是錯的上述C
聲明)
其他嘗試(這也失敗了)包括:
template<typename T, template<typename> class X<T>, template<typename> class Y<T>>
template<typename T> template<typename X<T>, typename Y<T>>
是這樣的可能嗎?如果是這樣,語法是什麼?
謝謝!
只需使用'模板類X,模板類Y>'然後'X '和'ÿ'無論你在你的'C'需要。 –
Rostislav