158Fermer160
PpHdLe 08/05/2008 à 00:04
Alors puisqu'on en est à montrer son code. Quelques spéciales:

 case MAY_POW_T:
      ; may_t base = may_expand_recur (MAY_AT(x, 0));

Noter la présence du ';' avant le type 'may_t'. Sans çà, ca compile pas sad (ISO C 99).

may_t
may_recursive (may_t expr, may_t (*func) (may_t), unsigned long level)
{
  [...]
    for (i = 0; i < n; i++) {
      may_t var = may_op (listvar, i);
      auto may_t localfunc (may_t x);
      auto may_t localfunc (may_t x) {
        return may_recursive (x, func, level-1);
      }
      may_t newvar = may_map (var, localfunc);
      expr = may_replace (expr, var, newvar);
    }
  }
 [...]
}

La seule utilisation du mot clé 'auto' que je connaisse (et une GNU C extension bien pratique).

 typedef int T[3][3];

 int g(const T x);
 int f(T x) {
   // Manip sur x
   // Fucking cast because 'return g(x)' doesn't work
  return g(*(const T*)&x);
 }

Si vous savez éviter ce fucking warning, je suis preneur tout en respectant les caractères const, je suis preneur.