Я пытаюсь реализовать класс, который будет иметь член linear_congruential_engine.Я не хочу форсировать реализацию, но я не уверен, что это возможно, потому что linear_congruential_engine реализован в виде шаблона с нетиповыми аргументами.
Пример того, что я пытаюсь получить:
template <class T> MyClass {
protected:
template<T a, T c, T m>
std::linear_congruential_engine<T, a, c, m> randEngine;
public:
template<T a, T c, T m>
MyClass(std::linear_congruential_engine<T, a, c, m> randEngine) {
this->randEngine = randEngine;
}
}
Разрешение:
int main() {
MyClass<uint32_t> ex1(std::minstd_rand0());
MyClass<uint32_t> ex2(std::minstd_rand());
}
Возможно ли это?Моя интуиция говорит «нет», но надеюсь, что кто-то, более знакомый с шаблонами, скажет мне иначе или предложит разумный обходной путь.