Originariamente inviato da drudox
un template e` per sempre ? wow che intendi dire ?
Una volta stabilito un template, quello fa da "stampino" per la generazione di codice reale.
Nel tuo caso, se stabilisci che Matrix debba avere tre parametri, puoi variare il tipo T, righe e colonne, ma sempre tre parametri devi dare. E una volta stabilito come Matrix debba essere istanziata, non puoi modificare il T, righe o colonne a runtime, ma solo variando manualmente i parametri e ricompilando. In questo senso va letto: "un template è per sempre".

Ora, di per se non è sbagliato fissare i parametri a compile time (una matrice grossa si può solo allocare nell'heap), ma un'assegnazione tra due Matrix (come vorresti fare tu) ha senso solo se la matrice da assegnare è <= della matrice in cui copiare (trattandola in effetti come sottomatrice).

sempre meglio un solo parametro ??
Dipende. Il massimo della flessibilità si ha impostando i limiti a runtime (come hai fatto fino adesso), ma nulla vieta (fermo restando quanto detto) di fissare i limiti a compile time.