match múltiples tipos para la resolución de especialización de plantilla

Descarte brevemente el hecho de que la sobrecarga de la función normal servirá mejor a este ejemplo. Es solo una forma de aprender sobre la programación de plantillas. Dicho esto, puede comentar los beneficios / diferencias que obtendrá al usar la sobrecarga de funciones, en comparación con la especialización de plantillas de funciones (aunque eso podría merecer una pregunta propia).

Considere el siguiente ejemplo:

template <typename T>
inline void ToString(T value, char* target, size_t max_size );

template <>
inline void ToString<float>(float value, char* target, size_t max_size)
{
   snprintf( target , max_size , "%f" , value);
}

template <>
inline void ToString<double>(double value, char* target, size_t max_size)
{
    snprintf( target , max_size , "%f" , value);
}

Hay una manera de escribir solo una de estas especializaciones que coincidan con ambasfloat ydouble tipos?

ásicamente imagino escribir una especialización de plantilla para un tipo de plantilla que coincida con ambosfloat ydouble (como una especie de "tipo flotante o doble") pero no estoy seguro de si eso es posible con C ++. Dicho esto, he visto antes una magia de plantilla inesperada frente a mis ojos, así que creo que es una buena pregunta para hacer aquí.

Respuestas a la pregunta(1)

Su respuesta a la pregunta