Una volta stabilito un template, quello fa da "stampino" per la generazione di codice reale.Originariamente inviato da drudox
un template e` per sempre ? wow che intendi dire ?
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).
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.sempre meglio un solo parametro ??