Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
lang:cpp:lieur [2020/07/04 02:11] – [weak] : code -> gh root | lang:cpp:lieur [2023/07/28 09:48] (Version actuelle) – [Mangling] : ajout de "Demangler online" root |
---|
[[http://www.kegel.com/mangle.html|C++ Name Mangling/Demangling]] {{ :lang:cpp:lieur:c_name_mangling_demangling_2019-10-30_16_05_08_.html |Archive du 30/04/2002 le 30/10/2019}} | [[http://www.kegel.com/mangle.html|C++ Name Mangling/Demangling]] {{ :lang:cpp:lieur:c_name_mangling_demangling_2019-10-30_16_05_08_.html |Archive du 30/04/2002 le 30/10/2019}} |
| |
| * Demangler on-line |
| |
| https://d.fuqu.jp/c++filtjs/ |
| |
| https://demangler.com |
===Les méthodes définies dans un entête ont un attribut weak=== | ===Les méthodes définies dans un entête ont un attribut weak=== |
Le corps d'une méthode ''template'' doit être identique quelque soit le fichier objet généré. Les méthodes ''template'' étant compilés dans chaque fichier objet (possibilité de nombreux doublons), le compilateur va leur donner l'attribut ''weak''. | Le corps d'une méthode ''template'' doit être identique quelque soit le fichier objet généré. Les méthodes ''template'' étant compilés dans chaque fichier objet (possibilité de nombreux doublons), le compilateur va leur donner l'attribut ''weak''. |
* Symboles : | * Symboles : |
| |
{{gh>https://github.com/bansan85/wiki_le_garrec_fr_travis/blob/master/cpp/linker/weak/ClasseA.cpp.txt}} | {{gh>https://github.com/bansan85/wiki_le_garrec_fr_travis/blob/master/cpp/linker/weak/ClasseA.cpp.nm}} |
| |
{{gh>https://github.com/bansan85/wiki_le_garrec_fr_travis/blob/master/cpp/linker/weak/ClasseB.cpp.txt}} | {{gh>https://github.com/bansan85/wiki_le_garrec_fr_travis/blob/master/cpp/linker/weak/ClasseB.cpp.nm}} |
| |
On voit que le symbole ''Entete::go()'' est défini deux fois avec l'attribut weak. Mais le ''#define'' étant différent, les deux implémentations sont différentes. | On voit que le symbole ''Entete::go()'' est défini deux fois avec l'attribut weak. Mais le ''#define'' étant différent, les deux implémentations sont différentes. |