C ++ специализированный шаблон наследуется от неспециализированной версии

Я пытался решить проблему, но нашел другое решение. однако из любопытства хотелось бы знать, возможно ли следующее:

template< class > struct S;
template< > struct S< Foo > : struct< Foo > {};

Я хотел бы иметь возможность наследовать неспециализированную структуру от специализированной структуры. Пример выше не работает, потому что унаследованная структура является специализированной, что приводит к бесконечной рекурсии.

Одним из возможных решений было добавить второй параметр шаблона, скажем, bool special, чтобы значение по умолчанию было false, а для специализированного шаблона этот параметр имеет значение true.however, что делает его немного беспорядочным, поскольку в экземпляре необходимо указать дополнительный параметр.

Есть ли какой-то другой способ реализовать вышеизложенное?

Первоначальная проблема заключалась в том, чтобы реализовать матрицу матриц, где сама матрица может иметь дополнительные операторы, в зависимости от того, имеют ли эти матрицы составные матрицы. Я надеюсь, что это имеет смысл. в то же время разные специализированные матрицы должны быть одного и того же базового класса, в то же время сохраняя одно и то же имя, хотя и с разными параметрами шаблона. Я думал, что может быть способ сделать это, используя enable_if и набрав черты

Ответы на вопрос(2)

Ваш ответ на вопрос