условная реализация класса шаблона - PullRequest
0 голосов
/ 08 июня 2018

У меня есть класс 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.

...