Следующий пример должен проиллюстрировать мой вопрос: если у меня есть класс в качестве параметра шаблона, как я могу использовать (постоянные) свойства класса ...Как использовать свойство класса в качестве параметра шаблона/для специализации?
Непосредственно, как указано линией, обозначенной с (1). Насколько мне известно, это должно сработать. Это «правильный» способ?
В качестве параметра для специализации шаблона. Поэтому я хотел бы специализировать один из контейнеров для фиксированных и один для нефиксированных. Здесь я понятия не имею. Пример
Код:
class IdxTypeA{
const bool fixed = true;
const int LEN = 5; // len is fixed on compile time
}
class IdxTypeB{
const bool fixed = false;
int len; // len can be set on runtime
}
class IdxTypeC{
const bool fixed = false;
int len; // len can be set on runtime
}
template<class IDX> class Container { }
template<>
class Container<here comes the specialisation for fixed len>{
int values[IDX.LEN]; // **** (1) *****
}
template<>
class Container<here comes the specialisation for not fixed length>{
...
}
(Речь идет не о контейнерах, это просто грубый пример.)
Я выяснен вопрос немного: Это может быть, что у меня есть IdxTypeC, IdxTypeD, и так далее, которые могут быть фиксированными или не фиксированы. Все они должны вызывать правильную специализацию. Поэтому я бы не хотел специализироваться на типе, но для определенного свойства в нем. – Michael