У меня есть класс MyClass<size_t, type>
.
Я хотел бы добавить создание экземпляра условного шаблона, используя std::is_same
и std::conditional
.
Однако оба типа для первого параметра одинаковы и равны size_t
.
Как и ожидалось, когда MYSIZE1
и MYSIZE2
совпадают, class<MYSIZE,int>
выдаст ошибку.
Как я могу выполнить эту условную компиляцию, учитывая, что единственное изменение заключается в значении параметра шаблона?
template class MyClass<
std::conditional< (!std::is_same<MyClass<MYSIZE1,int>,
MyClass<MYSIZE2,int>
>::value),
MyClass<DUMMYSIZE,int>,
Myclass<MYSIZE1, int>
>::type,
int>;
Это не работает, очевидно, так как условный возвращает тип MyClass.