Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Export de template dans une DLL

2 réponses
Avatar
Michael Monerau
Bonjour,

Est-ce possible à faire ? Le contraire m'embêterait...

J'ai essayé :
template <int dim, class Type = double> class DLL_EXPORT Vec

{...}

Mais ça ne marche pas (aucun symbole n'est exporté).

Merci de vos éclairements...

2 réponses

Avatar
Michael Monerau
Michael Monerau wrote:
Bonjour,

Est-ce possible à faire ? Le contraire m'embêterait...

J'ai essayé :
template <int dim, class Type = double> class DLL_EXPORT Vec

{...}

Mais ça ne marche pas (aucun symbole n'est exporté).

Merci de vos éclairements...



Oups, oubliez mon message. J'ai trouvé la solution (j'ai honte de ne pas y
avoir pensé avant !).

Le problème ne se pose pas puisque l'implémentation du template doit être
avec le .h... Donc je suis obligé d'inclure le .cpp dans le .h, ce qui
réduit à néant l'intérêt de la dll dans ce cas-là (implémentation cachée,
inclusion seulement du .h, c'est un des problèmes du template d'ailleurs).

Bon, un problème de résolu :)
--
<=-Michaël"Cortex" Monerau.-=>
Avatar
Arnaud Debaene
Michael Monerau wrote:

Oups, oubliez mon message. J'ai trouvé la solution (j'ai honte de ne
pas y avoir pensé avant !).

Le problème ne se pose pas puisque l'implémentation du template doit
être avec le .h... Donc je suis obligé d'inclure le .cpp dans le .h,
ce qui réduit à néant l'intérêt de la dll dans ce cas-là
(implémentation cachée, inclusion seulement du .h, c'est un des
problèmes du template d'ailleurs).

Bon, un problème de résolu :)



Ceci dit, rien ne t'empêche d'exporter d'une DLL une spécialisation complète
d'une classe ou fonction template, mais c'est sûr que ca perd l'intérêt
essentiel des templates ;-) Il y a cependant des cas ou un tempalte n'est
concu que pour être instancié sur quelques types : dans ce cas tu peux
toujours exporter toutes les spécialisations.

Arnaud
MVP - VC