1
我收到以下錯誤: 「非專業化的類模板不能作爲模板參數‘_Kty’模板參數,預計一個真正的類型」C++容器是否可以包含模板對象?收到錯誤
我試圖編譯的代碼是什麼像這樣:
template <typename T> class TypeX;
template <typename T>
class TypeY
{
...
private:
std::set<TypeX> m_tree;
}
順便說一句,包括「TypeX.h」(這是一個模板類),而不是向前聲明不會改變任何東西。
我從這個錯誤中收集到的是,由於TypeX是「非專業化的」 - 即「T」沒有定義,TypeX仍然是模板形式,所以它不能作爲std :: set的基礎。但是我真的希望TypeX成爲T的一個模板,並且在TypeY中,我可以初始化一個新的TypeX(T的模板),然後將該新對象插入到m_tree中。
可以這樣做嗎?多謝你們。
我不是上來就C++標準的最新版本,但不早版本要求在兩個'>'之間用空格來書寫? – jwodder
@jwodder固定以防萬一。 – Caesar
真棒,感謝凱撒。這解決了這個問題。兩個後續的問題。 (因爲我不能在這裏插入新的行) – Phoeniyx