Ciao. Scusate il titolo, ma non sapevo che altro scrivere: mi spiego subito. Ho creato un template di classe che rappresenta delle matrici. Tutto ok, finché non ho testato le seguenti linee di codice:
Per gli operatori esterni sono riuscito a risolvere utilizzando due parametri template. Ma per quelli esterni come fare? Vorrei chiaramente abilitare tutte le possibili combinazioni di tipi (visto che la classe funziona solo con tipi aritmetici): ha perfettamente senso sommare una matrice di int a una di double o una di std::complex a una di double o di int.codice:Matrix<double> m1(3,3,1.); // Matrice 3x3 piena di 1. std::cout << 3. * m1 << std::endl; // Funziona (vedi ridefinizione dell'operatore *) std::cout << 3 * m1 << std::endl; // Non funziona (3 é int e non double)
Ps: Dubbio: std::complex é aritmetico, giusto?
Grazie,
R.

Rispondi quotando