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

(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.