Dans un code que je vous écris, j'ai la ligne suivante, ce qui me donne l'erreur C2064:erreur C2064: terme ne pas prendre une fonction 0 arguments
rs_opCodes[cur_block]();
rs_opCodes est défini comme tel:
typedef void (rsInterpreter::*rs_opCode)();
rs_opCode rs_opCodes[NUM_OPCODES];
Est-ce que quelqu'un sait pourquoi je reçois l'erreur C2064?
je me suis dit que je ne devrais pas puisque la ligne était en fonction membre. Je suppose que j'avais tort. Merci! – Jarrod
"Je ne peux pas, d'abord pensé ..." - Je dirais que 'rsInterpreter' est une machine virtuelle, et' rs_opCodes' est un programme. Au lieu de coder les opcodes comme des entiers, ils sont codés comme des pointeurs de fonction membres. Une opération est exécutée en appelant la fonction membre correspondante sur la machine virtuelle. C'est un modèle de machine virtuelle limitée, car il n'y a pas de place pour les valeurs immédiates dans les opcodes, mais il peut voler. –
@Steve: Merci! Je n'ai juste pas pensé à interpréter les noms des variables :) –