有沒有這樣的事,作爲一個模板類的最大尺寸,尤其是如果類包含模板參數的一個實例,爲你做。考慮每個
template <typename T> class MyClass {
public:
MyClass() { };
MyClass(T& t) : _t(t) { }
private:
T _t;
};
union TestUnion {
MyClass<char>;
MyClass<unsigned char>;
MyClass<signed char>;
MyClass<short>;
// ...
MyClass<float>;
MyClass<double>;
MyClass<char*>;
MyClass<int*>;
// ...
MyClass<void*>;
MyClass<void (*)(void)>;
MyClass<std::vector>;
// ...
MyClass<int[10]>;
MyClass<int[100]>;
MyClass<int[1000]>;
MyClass<int[10000]>;
MyClass<int[100000]>;
};
等等......或者同樣令人興奮,插入
MyClass< MyClass< MyClass< ... < XImage > ... > > >
(這是不可否認不能保證在比承諾的最大嵌套模板實例化深度更大的工作(17現在,1024推出))。
所以,顯然沒有理論上的最大值。如果你有一個類型的宇宙實際上是MyClass <>的模板參數,那麼它可能是可行的。
編輯 - 將<替換爲<
,這樣模板參數不會被SO分析器隱藏。
沒錯。我在這裏理解這個問題。所以如果我在聯盟內部實例化模板,那就行得通了。不幸的是,我不確定這是否適合我。 – 23L 2010-10-24 04:02:40
@ 23L - 好吧,別人發佈了一個很好的例子,所以我不會打擾我的。 :-) – Omnifarious 2010-10-24 04:31:42