Son C ++ plantilla-funciones hilo de seguridad?
-
28-09-2019 - |
Pregunta
googlear no encuentra nada. Son creados en el punto de uso, o son las partes genéricas compartidos entre instancias?
(Lo mismo para las clases de plantilla?)
Solución
plantilla se crean en tiempo de compilación. La propiedad plantilla es completamente ortogonal a enhebrar la seguridad.
Otros consejos
No son más o menos hilo de seguridad que cualquier otro tipo de función.
La única manera que puedo pensar de hilo de seguridad se vea afectada por esto es que si no se someMethod<typename T>()
hilo de seguridad, entonces sería aún estar bien para un hilo para operar en someMethod<int>()
mientras que otro trabajó en someMethod<std:string>()
, siempre que la falta de hilo de seguridad no vino de su tanto poner en alguna función no moldeados.
La situación en la que algo más está garantizando que sólo un hilo está haciendo una tarea en particular con un tipo particular en un momento parece sin embargo bastante improbable.
Funciones de plantilla son simplemente ... plantillas usadas por el compilador para generar funciones "normales". Por lo que es lo mismo que las funciones normales, no hay ninguna diferencia.