Ponteiro de função de membro em C ++ for_each
Estou desenvolvendo uma pequena máquina virtual em C ++ para um projeto de escola, que deve funcionar como o comando dc, e é composta por um elemento de entrada e saída, um chipset, uma CPU e RAM. Atualmente, estou trabalhando no chipset, no qual implementei uma pequena classe de análise para poder obter algumas instruções Asm de entrada ou arquivo padrão e, em seguida, enviar essas instruções para a CPU.
O problema é: minhas instruções são classificadas em uma lista std :: e eu gostaria de poder empurrá-las cada uma com uma instrução foreach. Para fazer isso, preciso poder chamar minha função de membro "push_instruction" como o ponteiro de função F de for_each; e não consegui encontrar o truque para fazer isso ...
Alguma ideia? aqui está o meu código:
/*
** Function which will supervise
** the lexing and parsing of the input (whether it's std_input or a file descriptor)
** the memory pushing of operands and operators
** and will command the execution of instructions to the Cpu
*/
void Chipset::startExecution()
{
/*
** My parsing
** Instructions
**
*/
for_each(this->_instructList.begin(), this->_instructList.end(), this->pushInstruction);
}
void Chipset::pushInstruction(instructionList* instruction)
{
if (instruction->opCode == PUSH)
this->_processor->pushOperand(instruction->value, Memory::OPERAND, Memory::BACK);
else if (instruction->opCode == ASSERT)
this->_processor->pushOperand(instruction->value, Memory::ASSERT, Memory::BACK);
else
this->_processor->pushOperation(instruction->opCode);
}