Seleccionar argumento de plantilla en tiempo de ejecución en C ++

Suponga que tengo un conjunto de funciones y clases que están diseñadas para usar single float) odouble precisión. Por supuesto, podría escribir solo dos piezas de código de arranque o jugar con macros. Pero, ¿puedo cambiar el argumento de plantilla en tiempo de ejecución?