È proprio il problema che ho incontrato. Anche utilizzando due parametri template, quello restituito definisce il tipo. Quindi il tipo é definito dalla posizione rispetto all'operatore e non dal tipo con meno perdita di informazione.Originariamente inviato da shodan
Dipende. Se sommi una matrice di double a una matrice di int ottieni una matrice di double, idem se la moltiplichi. Se invece sommi o moltiplichi) una matrice di int a una di double rimarrai con una matrice di double. E lo stesso vale con std::complex.
Per farla breve con gli operatori che hai definito puoi solo operare su tipi omogenei.
Se vuoi operare con tipi non omogenei è necessario usare un altro sistema (metaprogrammazione template).
E' quello che ti avevo accennato tempo fa.
Puoi indicarmi qualche buona referenza su dove posso almeno capire i rudimenti della metaprogrammazione template?
Grazie ancora per l'aiuto.
Ps: Per i tipi omogenei la classe sembra funzionare alla grande!![]()


Rispondi quotando