Возможно ли условное определение типа в C ++?

этот вопрос связан с c ++

есть библиотека, которая объявляет класс с именем Solver . Решатель является членом другого класса Домена (написанного мной)

теперь есть много Доменов, которые имеют член "int region"

, что я хочу сделать, это в зависимости от значения региона, я хочу сделать решатель принимает разные аргументы для TS и FS. Я думал о чем-то вроде

template<int region>
struct Decider
{
  if(region==1)
  {
     typedef TSA TS;
     typedef FSA FS;
  }
  else
  if(region==2)
  {
     typedef TSB TS;
     typedef FSB FS;
  }
}

и позже использовал это как

Decider<region>::TS
Decider<region>::FS

Однако здесь из-за объема if, я полагаю, эта структура бесполезна. Однако я не могу придумать лучшего способа сделать это. Есть предложения?

Все разные TS и FS имеют одинаковый интерфейс. Так что мне не нужно беспокоиться о внутреннем коде.

10
задан David Rodríguez - dribeas 14 June 2011 в 19:00
поделиться