Jus*_*n G 3 c++ templates class member
有没有办法在类中存储模板或自动变量而不使类成为模板?我正在尝试存储指向其中一个STL随机数生成器的指针,但是如果不将整个类放入模板中,我无法想出任何方法.这不是一个选项,因为将cpp中的所有内容移动到h文件会导致大量的循环头文件包含我不想处理的内容.所以例如它会是这样的:
class tSomeClass
{
public:
template<typename RNG>
tSomeClass(RNG * rng) : fRNG(rng) { }
private:
RNG * fRNG; // How do I get this working???
};
Run Code Online (Sandbox Code Playgroud)
到目前为止,我提出的所有内容总是需要将整个课程作为模板,所以我很难过.
编辑:我知道我忘了提一些东西.我不能使用继承来指定RNG类型,因为我不知道基数是什么,除非有人知道STL使用的RNG的基类是什么.目前我正在使用std :: default_random_engine.
如果你真的不想要模板我可以想到两个选项:
void *.这不是非常类型安全的,并且该类的用户必须确切地知道它实际上用它做什么类型.IRandom *.这似乎在一般情况下更有用/可用.