有沒有某種方法可以將類或模板中的模板或自動變量存儲在模板中?我試圖存儲一個指向其中一個STL隨機數生成器的指針,但我無法想出任何方式來做到這一點,而不需要將整個類放入模板中。這不是一個選項,因爲將cpp中的所有內容移到h文件中會導致大量的循環頭文件包含我不想處理的內容。因此,例如,它會是這樣的:非模板類中的任何類型的C++成員變量
class tSomeClass
{
public:
template<typename RNG>
tSomeClass(RNG * rng) : fRNG(rng) { }
private:
RNG * fRNG; // How do I get this working???
};
到目前爲止,一切我來了總是需要有整個班級爲模板,所以我難倒結束。
編輯:我知道我忘了提到的東西。我不能使用繼承來指定RNG類型,因爲我不知道基類是什麼,除非有人知道STL使用的RNG的基類是什麼。目前我使用std :: default_random_engine。
爲什麼你需要這個模板?會不會正常繼承工作? – dasblinkenlight 2011-12-20 04:12:26
¤您可以簡單地存儲'std :: function < double() >'。 Cheers&hth。, – 2011-12-20 04:22:11
您確定要將* ANY *類型儲存在RNG中嗎?你不能以某種方式限制它嗎?我的意思是,你想存儲一個指向類的指針,一個指向原始類型的指針等等嗎? – Lucian 2011-12-20 06:38:23