Si le caractère initial est -, il est inférieur. Fini.
Si le caractère est 0 on regarde le suivant jusqu'à != 0 ou la fin. A la fin on sait que le nombre est <= 10
Si le caractère est != 0 on regarde juste si le suivant est aussi, dans ce cas le nombre est > 10.
A chaque fois tu dois faire une comparaison sur les caractères ">= '0'", "<= '9'" aussi mais bon... Logique combinatoire... ça se fait.
Et quand tu propose de supprimer carrément touts les opérateurs logiques... ça se contourne également, mais ça devient vraiment lourd... Tu veux aussi interdire les additions du coup non ?

Sinon pointeurs de fonction = fonctions virtuelles. Soit il dit en passant c'est super lent en réalité (a plus forte raison si tu en as beaucoup, et dans ton cas c'est inévaitable, car à ce moment la la taille de ton éxécutable augmente énormément pour contenir chacune des mini fonctions qui en apelle d'autres etc..., donc tu utilises presque jamais le cache du cpu), et ça s'optimise très peu pour ne pas dire "pas du tout".
Et les "if" dissimulés dans les handles

Normalement tu peux résumer la grande majorité des programmes non systèmes (donc pas besoin vital de manipuler des champ de bits) à 3 opérations: addition, comparaison, branchement. Toi tu propose de supprimer "comparaison".
L'utilisateur de donne deux entiers a et b, te demande lequel est le plus grand. Tu as interdit opérations logiques, tests conditionnels et compagnie... Tu fais quoi ?
C'est pas viable
