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

instantiation template

2 réponses
Avatar
Sylvain
instantier ou pas, d'ailleurs c'est aussi la question.

ceux qui m'ont lu au moins une fos le savent, j'adore les templates.

j'inclus pour la 1ière fois une librairie à base de template dans un de
mes projets (librairie Crypto++ vers. 5.5.2 compilé par VC2005/cl.14)

je n'ai pour l'heure qu'inclut tous les src de la distrib.,
je n'instancie pas dans mes propres src la moindre classe,
le linkeur m'indique tout de même 485 "symbole externe non résolus"
(désespoir ...)

pris au hasard, j'ai par exemple:

virtual class CryptoPP::Integer
CryptoPP::AbstractRing<class CryptoPP::Integer>::CascadeExponentiate(
class CryptoPP::Integer const &, [...]) const

je n'ai pas localisé avec certitude qui utilise qlq part un
AbstractRing<Integer> mais le template AbstractRing est comme
son nom l'indique abstrait (contient des virtuelles pures),
je doute donc que ce template soit vraiment utilisé comme tel,
ou la compile aurait du le refuser, non ?

d'où:
1- si le code template est généré que si il est utilisé, pourquoi le
compilo trouve du code à inclure alors que je n'ai aucune référence,
et pourquoi dans le même temps oublie-t-il la moitié de ce qu'il
génère quand même ?
2- comment forcer la génération de tout le code, si l'hypothèse 1
est exacte.

3- criez pas, je sais que mon compte-rendu n'est pas clair, mais je
ne comprends clairement rien à ces instantiations aléatoires de code.

merci pour toute aide.
Sylvain.

2 réponses

Avatar
Etienne Rousee
"Sylvain" a écrit*...
j'inclus pour la 1ière fois une librairie à base de template dans un de
mes projets (librairie Crypto++ vers. 5.5.2 compilé par VC2005/cl.14)


As tu lu ça:

http://www.codeproject.com/KB/tips/CryptoPPIntegration.aspx ?

--

Etienne

Avatar
Sylvain
Etienne Rousee wrote on 28/03/2008 00:31:
"Sylvain" a écrit*...
j'inclus pour la 1ière fois une librairie à base de template dans un de
mes projets (librairie Crypto++ vers. 5.5.2 compilé par VC2005/cl.14)


As tu lu ça:

http://www.codeproject.com/KB/tips/CryptoPPIntegration.aspx ?


merci pour ce lien.
non, je n'étais pas tombé dessus, merci mais ça ne m'aide pas trop.

le seul pertinent pourrait être "Unresolved External Symbols" mais
il s'attarde que sur des évidences. ici je ne me demande pas comment
me lier à une lib (statique ou dynamique) externe (je sais faire),
mais bien comment ayant tous les sources de mon projet faire en
sorte que les méthodes templates soient générées.

je peux pour l'heure utiliser la librarie statique et les appels
que j'ai pu tester depuis mes src ne font pas hurler le linkeur.
pour diverses raisons (lourdeur de VS2005 et son crétinisense)
je voulais packeter ce dont j'ai besoin dans mon projet sans
tracter toute la lib.

Sylvain.