Los templates no pueden tener código en el cpp. Tiene que estar todo en la cabecera.
La razón es sencilla. El compilador, al encontrarse con un template no lo compila, lo guarda y cada vez que encuentra un uso diferente del template crea y compila una clase específica para ese uso.
La razón es sencilla. El compilador, al encontrarse con un template no lo compila, lo guarda y cada vez que encuentra un uso diferente del template crea y compila una clase específica para ese uso.