Есть ли способ сохранить шаблон или автоматическую переменную в классе, не делая класс шаблоном? Я пытаюсь сохранить указатель на один из генераторов случайных чисел STL, но никак не могу найти способ сделать это без превращения всего класса в шаблон. Это не вариант, так как перемещение всего содержимого файла cpp в h может привести к тому, что в циклический заголовочный файл будет входить множество файлов, с которыми я не хочу иметь дело. Так, например, это будет примерно так:
class tSomeClass
{
public:
template<typename RNG>
tSomeClass(RNG * rng) : fRNG(rng) { }
private:
RNG * fRNG; // How do I get this working???
};
Пока все, что я придумал, всегда заканчивалось необходимостью иметь весь класс в качестве шаблона, поэтому я в замешательстве.
РЕДАКТИРОВАТЬ: Я знал, что забыл упомянуть кое-что. Я не могу использовать наследование для указания типа RNG, так как я понятия не имею, что такое база, если кто-то не знает, что такое базовый класс для RNG, используемых STL. В настоящее время я использую std :: default_random_engine.