Bien le bonjour,
Je cherche un logiciel/outils/lib/bidule qui permettrait de mettre tout seul à niveau un lot de programmes cpp/hpp, de maniÚre simple et efficace. Dans l'idéal, il faudrait qu'il puisse faire depuis c03 à c20 ou plus, le tout sans intervention humaine trop importante.
Ăa servirait Ă pouvoir (enfin) recompiler toutes les vielles versions de la Bataille pour Wesnoth, un projet dont je parle ici.
Une rapide recherche sur l'inter-pas-trÚs-net m'a appris que clang-tidy aurait une fonctionnalité pouvant me convenir, mais la doc est assez pauvre et il s'est cassé les dents au premier test.
Je ne m'y connais pas trop en c++, mais j'arrive à saisir les concepts généraux.
Merci de votre coopération.
# Pourquoi�
PostĂ©Â par Anthony Jaguenaud . ĂvaluĂ©Â Ă Â 2.
Salut,
Pour te répondre, je ne sais pas.
Faire ce travail est long et fastidieux. Alors, pourquoi le faire�
Je vois des raisons objectives, les compilateurs abandonnent le support de C++03 et donc il faut changer tout ce qui a Ă©tĂ© abandonnĂ©. Mais sinon, câest quoi lâintĂ©rĂȘtâŻ?
Pourquoi toi veux-tu faire ce travail� Le plaisir de découvrir le c++� Le plaisir de découvrir clang-tidy� Autre chose�
[^] # Re: Pourquoi�
PostĂ©Â par Anthony Jaguenaud . ĂvaluĂ©Â Ă Â 6.
Je me réponds aprÚs avoir suivi ton lien⊠(je sortirai à la fin).
Je pense que le problÚme ne vient pas des versions de norme c++⊠mais plus probablement de la taille des pointeurs⊠en 32bits, beaucoup de gens convertissaient les pointeurs en
uint
. Mais en 64 bits (version amd64) les pointeurs font 64 bits, mais les entiers sont restĂ©s Ă 32 bits. Ămha, tu as plus des problĂšmes de ce genre.Jâai souvenir que sur
gentoo
en 64 bits, certains logiciels Ă©taient patchĂ©s pour pouvoir compiler en 64 bits. Peut-ĂȘtre retrouveras-tu des patchs par lĂ -bas.Je suis toujours intĂ©ressĂ© sur le pourquoiâŻ?
Câest bon, maintenant, je sors ([]--->)
# clang
PostĂ©Â par freem . ĂvaluĂ©Â Ă Â 7. DerniĂšre modification le 10 novembre 2022 Ă 15:20.
clang-tidy sait faire. Dans ce lien, ctrl+f sur "modernize".
A l'origine (dans les annĂ©es 2010) ça s'appelait clang-modernise. L'intĂ©rĂȘt, pour rĂ©pondre au message ci-dessus, c'est de pouvoir bĂ©nĂ©ficier des nouvelles syntaxes, ce qui rend le code clairement plus lisible.
Typiquement:
Peut devenir en C++ moderne:
Pour moi, il n'y a pas photo. Et je n'ai pas cité
std::bind1st
oustd::bind2nd
âŠQuant Ă la doc, je ne la trouve pas vraiment pauvre, moi. Au pire on peut facilement trouver des articles sur le sujet.
Ceci Ă©tant dit, moderniser une base de code sans connaĂźtre le langage me semble assez peu pertinent quand mĂȘme.
[^] # Re: clang
PostĂ©Â par remico . ĂvaluĂ©Â Ă Â 3.
Le jeu daterait de 2003, le C++ a évolué depuis. Il y a une version du c++ de 1998, une de 2003 et une de 2011.
Sur la page du site gcc, il n'y a plus que les réglages -std=c++98 et -std=c++11 :
https://gcc.gnu.org/projects/cxx-status.html
Je ne sais pas si cette version -std=c++03 fonctionne avec avec un compilateur récent, je ne sais pas non plus s'il y a beaucoup de différence c++03 c++11.
Mais il est peu probable que ce soit le c++03 je miserai plutÎt sur le CXXFLAGS=-std=c++98 à ajouter dans le Makefile ou aux différents Makefile ou encore à Makefile.in avant de lancer ./configure s'il existe, ou encore seulement au Makefile du dossier du fichier qui pose un soucis de compilation.
[^] # Re: clang
PostĂ©Â par alberic89 đ§ . ĂvaluĂ©Â Ă Â 1.
Merci beaucoup pour cette piste.
En effet, l'ajout de CXXFLAGS=-std=c++03 au Makefile.am a résolu mon problÚme.
Encore merci.
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
Suivre le flux des commentaires
Note : les commentaires appartiennent Ă celles et ceux qui les ont postĂ©s. Nous nâen sommes pas responsables.