typo dans identificateur.cc ligne 288

Librairie C++ de calcul formel/ C++ symbolic computation library

Modérateur : xcasadmin

jlaurens
Messages : 16
Inscription : jeu. juil. 03, 2014 10:23 am

typo dans identificateur.cc ligne 288

Message par jlaurens » lun. juil. 21, 2014 9:29 pm

// const gen & x__IDNT_e = * (gen *) & alias_xx38;

à remplacer par

// const gen & xx__IDNT_e = * (gen *) & alias_xx38;

Au passage à quoi sert ce GIAC_HAS_STO_38 ?

Pour éviter les répétitions, les erreurs et pour rendre le code plus lisible, on peut se servir de macros.
Les 26 répétitions des lignes 508 et suivantes étant

identificateur a__IDNT("a");
gen a__IDNT_e(a__IDNT);
[...]
identificateur z__IDNT("z");
gen z__IDNT_e(z__IDNT);

on peut les remplacer par

#define GIAC_STRINGIFY(_X) GIAC_STRINGIFY_(_X)
#define GIAC_STRINGIFY_(_X) #_X

#define GIAC_DO(__X)\
identificateur __X##__IDNT(GIAC_STRINGIFY(__X));\
gen __X##__IDNT_e(__X##__IDNT)
GIAC_DO(a);
[...]
GIAC_DO(z);
#undef GIAC_DO

Idem pour les autres cas.

La macro STRINGIFY est un classique.

parisse
Messages : 5739
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: typo dans identificateur.cc ligne 288

Message par parisse » mar. juil. 22, 2014 9:45 am

bon, pas grave, puisque c'est du code commente.
GIAC_HAS_STO_38 sert a compiler avec une certaine compatibilite avec les HP38/39/40 (noms de variables en 1 lettre preaffectes par exemple).
Pour la macro, je retiens pour un usage ulterieur eventuel, mais je prefere ne pas modifier du code qui marche par une macro que je ne maitrise pas.

Répondre