Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1544 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  template et version des compilateurs

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

template et version des compilateurs

n°1846804
frenchtouc​co
Posté le 03-02-2009 à 19:33:38  profilanswer
 

Hi,
 
Suite à un qcm C++ d'une boite pour un entretien d'embauche....
 
L'implémentation des templates est-elle dépendante des compilateurs?
 
Merci.


---------------
je connais tout, je ne sais rien, seule certitude, à vouloir trop on finit par tout perdre.
mood
Publicité
Posté le 03-02-2009 à 19:33:38  profilanswer
 

n°1846813
frenchtouc​co
Posté le 03-02-2009 à 19:42:11  profilanswer
 

j'en profite pour caser une deuxième question, est-il possible, de faire/de remplacer, de l'héritage multiple avec des templates?

Message cité 1 fois
Message édité par frenchtoucco le 03-02-2009 à 19:42:29

---------------
je connais tout, je ne sais rien, seule certitude, à vouloir trop on finit par tout perdre.
n°1846820
Taz
bisounours-codeur
Posté le 03-02-2009 à 19:54:05  profilanswer
 

frenchtoucco a écrit :

Hi,
 
Suite à un qcm C++ d'une boite pour un entretien d'embauche....
 
L'implémentation des templates est-elle dépendante des compilateurs?
 
Merci.


oui mais c'est une question qui ne veut rien dire. une implémentation est forcément dépendante de quelque chose puisque c'est la matérialisation par des choix techniques d'une conception plus ou moins abstraite.

n°1846821
Taz
bisounours-codeur
Posté le 03-02-2009 à 20:00:13  profilanswer
 

frenchtoucco a écrit :

j'en profite pour caser une deuxième question, est-il possible, de faire/de remplacer, de l'héritage multiple avec des templates?


non. pas dynamiquement

n°1846825
frenchtouc​co
Posté le 03-02-2009 à 20:12:10  profilanswer
 

et quand l'architecture logicielle est figée, on peut le faire donc, en statique


---------------
je connais tout, je ne sais rien, seule certitude, à vouloir trop on finit par tout perdre.
n°1846827
frenchtouc​co
Posté le 03-02-2009 à 20:15:02  profilanswer
 

Taz a écrit :


oui mais c'est une question qui ne veut rien dire. une implémentation est forcément dépendante de quelque chose puisque c'est la matérialisation par des choix techniques d'une conception plus ou moins abstraite.


 
Mais est ce que les compilateurs respectent tous la norme ANSI/C++ concernant l'implémentation des templates ? ou y a t-il des variantes ? variantes qui n'existent pas par exemple pour d'autres outils du langage comme la prise en charge du polymorphisme ou bien la surchage d'opérateur par exemple? En d'autre terme les templates sont-elles un cas à peu à part ?


---------------
je connais tout, je ne sais rien, seule certitude, à vouloir trop on finit par tout perdre.
n°1846832
Taz
bisounours-codeur
Posté le 03-02-2009 à 20:30:04  profilanswer
 

mais la norme ne dit jamais comment implémenter. c'est justement le gros point fort du C et du C++: très peu de pré-requis, champ libre à l'implémentation.

n°1846837
Taz
bisounours-codeur
Posté le 03-02-2009 à 20:38:03  profilanswer
 

frenchtoucco a écrit :

et quand l'architecture logicielle est figée, on peut le faire donc, en statique


non je veux dire au sens virtual, déjà avec des template tu ne peux pas simuler ce degré de polymorphisme. alors le multiple ...

n°1846840
Taz
bisounours-codeur
Posté le 03-02-2009 à 20:40:01  profilanswer
 

Enfin deux questions comme ça, ça me pose plus le problème de la compétence de celui qui les pose.

 


Par exemple la première: la formulation est mauvaise, mais peut-être que la réponse c'est un truc du genre "faut avoir le code pour compiler du template, donc ça dépend forcément du compilateur". Mais y a mélange des genres. Tu peux très bien avoir une bibliothèque, qui te donnes des X<T>, X<U> et X<V> et qui te fournit: un .o/.dso/.a dans lequel sont instanciés ces template et un .hpp purement déclaratif, c'est à dire que tu n'a pas le code même du template à disposition. (modèle de l'instanciation séparée).


Message édité par Taz le 03-02-2009 à 20:43:35
n°1846848
frenchtouc​co
Posté le 03-02-2009 à 20:51:49  profilanswer
 

mais qu'est ce que c'était que cette question moisie alors....  Bon je me ss fait avoir pour le coup du template/héritage multiple, j'ai répondu que c'était possible, fuck !


---------------
je connais tout, je ne sais rien, seule certitude, à vouloir trop on finit par tout perdre.
mood
Publicité
Posté le 03-02-2009 à 20:51:49  profilanswer
 

n°1846860
Joel F
Real men use unique_ptr
Posté le 03-02-2009 à 22:18:43  profilanswer
 

mais quelles questions en bois v_v le truc qui sert bien à rien

n°1846934
Un Program​meur
Posté le 04-02-2009 à 08:16:57  profilanswer
 

Ce genre de question en QCM?  Je veux bien quand il y a quelqu'un en face pour eclaircir les ambiguites, mais en QCM?  
 
Sur les variations dans l'implementation des templates. La non implementation de export est quasiment universelle.  Il y avait encore recemment des compilateurs n'implementant pas la recherche de nom en deux temps (je n'ai pas verifie sur les dernieres versions).  Et je ne parle pas des problemes avec les membres templates qui sont implementes par les compilateurs dont je dispose mais qui ont eu du retard a l'allumage (avec comme effet qu'une des SL de SunStudio n'est pas configuree pour l'utiliser).
 
Quant a la question sur l'heritage multiple.  On peut se servir des templates pour lineariser certains heritages multiples -- il y a eu un papier qui utilisait cette technique (de Dos Reis et Stroustrup, j'arrive pas a retomber dessus, le sujet du papier etait leur infrastructure pour les DSL dont j'ai oublie le nom).  La technique  est applicable aux hierarchies en echelle -- typiques quand on a une hierarchie d'interfaces et une hierarchie d'implementation.  On a la hierarchie d'implementation qui est template et le parametre template sert de classe de base (et est typiquement dans la hierarchie d'interface).   Et il y a quelques inconveniants aussi.  Mais devant un QCM je me demanderais si l'auteur pensait a ca ou bien en ignorait completement l'existance.

n°1846948
weblook$$
Posté le 04-02-2009 à 08:51:15  profilanswer
 

Tu aurais un squelette de code pour illustrer tes propos concernant la linéarisation de MI ? j'ai du mal à voir concrètement ce que ça donne, merci.

n°1846956
Un Program​meur
Posté le 04-02-2009 à 08:57:51  profilanswer
 

J'ai retrouve ceci: http://www-unix.mcs.anl.gov/worksh [...] osReis.pdf, slides 7 et 8.

n°1846963
weblook$$
Posté le 04-02-2009 à 09:22:05  profilanswer
 

mais ça demande la création d'un outil externe, ou d'un compilateur spécial cette technique, nan ?

n°1846979
Un Program​meur
Posté le 04-02-2009 à 09:48:17  profilanswer
 

La technique non -- le sujet de la presentation, c'est effectivement ce genre d'outils.
 

n°1846985
weblook$$
Posté le 04-02-2009 à 09:59:05  profilanswer
 

Mais alors peut-on dire pour autant que l'on peut faire de l'héritage multiple avec des templates en C++ ?

n°1847017
Un Program​meur
Posté le 04-02-2009 à 11:38:33  profilanswer
 

* On peut avoir des hierarchies avec de l'heritage multiple et des templates.
* On peut utiliser des solutions sans heritage multiple et avec templates dans des cas ou les alternatives semblent toutes necessiter de l'heritage multiple.
 
(Et n'oublie pas qu'avec suffisamment duplication et de wrappers, tu n'as jamais besoin d'heritage multiple).


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  template et version des compilateurs

 

Sujets relatifs
classe template avec pointeur membre sur la classetemplate template parameters
template syntaxeprécision: template et inline
Pour quelle version du framework .Net développez-vous ?Probleme de compilation avec les template
Problème avec la dernière version d'EasyPHP[Résolu]Passage d'un template non défini entièrement à une fonction
erreur de requete??MySQL server version for the right syntax to use neproblème sur un template
Plus de sujets relatifs à : template et version des compilateurs


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR