У вас есть все C ++ шаблоны все неправильно.Шаблонирование позволяет вам написать функцию / класс один раз с универсальными типами и разрешить любые типы при использовании функции / класса.
Вы не можете передавать данные значения в качестве параметра шаблона.
Здесьпример того, как вы можете создать шаблон вашего AllocFactoryPolicy
:
template<typename T>
struct AllocFactorPolicy
{
T value_;
AllocFactorPolicy(T value): value_(value)
{
}
//Have getters here....
};
template<typename T, typename U>
struct AllocFactorPolicy
{
T mantiss_,
U exponent_;
AllocFactorPolicy(T mantiss, U exponent):mantiss_(mantiss),exponent_(exponent)
{
}
};
Тогда вы можете сделать
AllocFactorPolicy<double> allocDouble(1.25);
AllocFactorPolicy<int, double> allocMaE(125,-2);
PS Это не проверено, но вы получите изображение.
Обновление Я вижу, что есть 2 структуры с одинаковым именем структуры, почему бы вам не сделать что-то подобное?
template<typename T>
struct AllocFactorPolicy
{
T value_;
T mantiss_,
int exponent_;
AllocFactorPolicy(T value): value_(value)
{
}
AllocFactorPolicy(T mantiss, int exponent):mantiss_(mantiss),exponent_(exponent)
{
}
//Have getters here....
};