假設我有以下類工作:如何使用受限模板?
template<class I, class O>
class TE {...}; //This is an abstract class
template<class I, class O>
class TESO: public TE {...};
template<class I, class O>
class TEMO: public TE {...};
現在我想創建一個新類TQ
應該這樣初始化:
TQ<int,bool, TESO<int,bool>> tq1;
TQ<int,bool, TEMO<int,bool>> tq2;
而且我不知道是什麼編寫TQ
類的正確方法。
我想這個問題:
template<class I, class O, TE<I,O>>
class TQ {
private:
std::vector< TE<I,O> > TEs;
public:
...
};
但我不能完全確定,因爲我有一個編譯錯誤:
template<class I, class O, TE<I,O>>
inline std::ostream& operator<<(std::ostream& os, const TE<I,O>& tq) {
os << ":" << std::endl;
return os;
}
':保護TE ' - 你的意思是':受保護的TE '? (另外,受保護的繼承是一個相當奇怪的選擇。) – 2014-09-22 10:58:14
將在一分鐘內得到修復和更新。 – 2014-09-22 11:00:57
什麼是你想要的限制?爲什麼? – Yakk 2014-09-22 11:42:52