Question

recherche sur Google ne trouve rien. Sont-ils créés au point d'utilisation, ou sont les parties génériques partagées entre les instances?

(même pour les classes de modèle?)

Était-ce utile?

La solution

Fonctions de modèle sont créés au moment de la compilation. La propriété modèle est complètement orthogonal à Réentrance.

Autres conseils

Ils sont plus ou moins thread-safe que tout autre type de fonction.

La seule façon que je peux penser à la sécurité de fil étant affecté par ce que si someMethod<typename T>() n'a pas été threadsafe alors il serait encore acceptable pour un fil de fonctionner sur someMethod<int>() tandis qu'un autre a travaillé sur someMethod<std:string>(), aussi longtemps que le manque de fil de sécurité ne sont pas venus de leur remettre en deux une fonction non templated.

La situation où quelque chose d'autre est de garantir qu'un seul thread fait une tâche particulière avec un type particulier à un moment semble assez peu probable cependant.

Fonctions de modèle sont tout simplement ... des modèles utilisés par le compilateur pour générer des fonctions « normales ». Il est donc le même que les fonctions normales, il n'y a pas de différence.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top