Specjalny szablon C ++ dziedziczy z wersji niewyspecjalizowanej

Próbowałem rozwiązać problem, ale znalazłem inne rozwiązanie. jednak z ciekawości lubię wiedzieć, czy możliwe są następujące działania:

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

Chciałbym móc dziedziczyć nie wyspecjalizowaną strukturę z wyspecjalizowanej struktury. Powyższy przykład nie działa, ponieważ odziedziczona struktura jest wyspecjalizowaną, co prowadzi do nieskończonej rekursji.

Jednym z możliwych rozwiązań było dodanie drugiego parametru szablonu, powiedzmy bool wyspecjalizowanego, tak że domyślnym jest false, a wyspecjalizowany szablon ma ten parametr true.

Czy jest jakiś sposób na wdrożenie powyższego?

pierwotnym problemem było zaimplementowanie macierzy macierzy, gdzie sama macierz może mieć dodatkowe operatory, w zależności od tego, czy macierze składowe mają te operatory. Mam nadzieję, że ma to sens. jednocześnie inna wyspecjalizowana matryca musi być tej samej klasy podstawowej, zachowując jednocześnie tę samą nazwę, chociaż z różnymi parametrami szablonu. Pomyślałem, że może istnieć sposób, aby to zrobić za pomocą cech enable_if i typu

questionAnswers(2)

yourAnswerToTheQuestion