Stavo cercando di risolvere un problema, ma ho trovato una soluzione diversa. tuttavia per curiosità, come per sapere se ciò che segue è possibile:Modello specializzato C++ ereditato dalla versione non specializzata
template<class> struct S;
template< > struct S<Foo> : struct<Foo> {};
Vorrei essere in grado di ereditare struct non specializzato da specializzata struct.the esempio di cui sopra non funziona perché la struct ereditato è il specializzata, leader alla ricorsione infinita.
Una soluzione possibile era quella di aggiungere il parametro secondo modello, dire bool specializzato, in modo tale che il valore predefinito è falso, e il modello specializzato ha quel parametro è true.however che rende le cose un po 'confuso in quanto esemplificazione deve specificare parametro aggiuntivo.
C'è un altro modo per implementare quanto sopra?
il problema originale era quello di implementare la matrice di matrici, in cui la matrice stessa può avere operatori aggiuntivi, a seconda che le matrici costituenti abbiano quegli operatori. Mi auguro che abbia senso. allo stesso tempo, diverse matrici specializzate devono essere della stessa classe base mantenendo allo stesso tempo lo stesso nome, anche se con parametri di template diversi. Ho pensato che ci fosse un modo per farlo usando enable_if e digitare i tratti
La prima contro-domanda è che tipo di problema stai cercando di risolvere con questo? –