Я определил шаблон базового класса:
template<class actual_class>
class base
{
public:
static const int value;
}
, а определение value
зависит от actual_class
tparam.
Далее у меня есть набор производных классы из base
, назовем их a
и b
. Давайте также скажем, что a::value = 5
и b::value = 10
.
Теперь в шаблоне метода, где мне нужно получить доступ к значениям stati c из пакета параметров. Я бы хотел, чтобы они были в векторе.
template<class... derived_from_bases>
void foo(irrelevant_class<derived_from_bases...> irrelevant)
{
// std::vector<int> values = { ... }
...
}
Для функции, вызываемой с помощью tparams, я бы хотел, чтобы вектор значений выглядел так:
std::vector<int> values = {5 /* a::value */, 10 /* b::value */};
Также было бы неплохо иметь std :: array вместо std :: vector.
Заранее спасибо за помощь.