Я думаю, это будет что-то вроде:
template <typename Type>
struct AllocFactor {...};
и тогда вы можете иметь Type
, например:
template <double&& Factor>
struct LinearConfig
{
static double value() { return Factor;}
};
и
template <short Mantissa, short Exponent, short Base = 10>
struct FactorScientificConfig
{
static double value()
{
return some_expression_to_get_factor;
}
};
Вы можете создать AllocFactor
, используя AllocFactor<LinearConfig<1.2>>
, и соответствующий с FactorScientificConfig
. Затем вы можете использовать статическую функцию-член для возврата значения, рассчитанного для обоих классов, так что AllocFactor<T>
может использовать T::value()
в качестве значения, сообщаемого классом конфигурации.