¿Hay algún consejo general o soluciones para organizar o redistribuir las definiciones de miembros con plantilla en varios archivos?
Sí; no lo hagas
La especificación C++ permite que un compilador para ser capaz de "ver" toda la plantilla (declaración y definición) en el punto de instanciación, y (debido a las complejidades de cualquier aplicación) la mayoría de los compiladores conservan este requisito. El resultado es que #inclusion de cualquier encabezado de plantilla también debe incluir #include cualquiera y todas las fuentes requeridas para instanciar la plantilla.
La manera más fácil de manejar esto es volcar todo en el encabezado, en línea donde sea posible, fuera de línea cuando sea necesario.
Si realmente considera esto como una afrenta inaceptable, una opción común es dividir la plantilla en el par de encabezado/implementación usual, y luego #incluir el archivo de implementación al final del encabezado.
La característica de "exportación" de C++ puede ofrecer o no otra solución alternativa. La característica tiene poco soporte y está mal definida; aunque en principio debería permitir algún tipo de compilación separada de plantillas, no necesariamente obvia la demanda de que el compilador pueda ver todo el cuerpo de la plantilla.
+1 para el enlace con el acoplamiento del artículo –
a este artículo es obsoleto! – iamantony