tipos template sirven que programacion plantillas para los funciones ats c++ templates static

c++ - template - Inicialización de miembro estático en una plantilla de clase



template en c++ pdf (2)

Esto funcionará

template <typename T> struct S { static double something_relevant; }; template<typename T> double S<T>::something_relevant=1.5;

Me gustaría hacer esto:

template <typename T> struct S { ... static double something_relevant = 1.5; };

pero no puedo porque something_relevant relevante no es de tipo integral. No depende de T , pero el código existente depende de que sea un miembro estático de S

Como S es la plantilla, no puedo poner la definición dentro de un archivo compilado. ¿Cómo resuelvo este problema?


Simplemente defínalo en el encabezado:

template <typename T> struct S { static double something_relevant; }; template <typename T> double S<T>::something_relevant = 1.5;

Como es parte de una plantilla, como con todas las plantillas, el compilador se asegurará de que solo se haya definido una vez.