Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.-=>
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.-=>
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.-=>
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
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.
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.