Указатель на функцию-член в C ++ for_each

Я разрабатываю небольшую виртуальную машину на C ++ для школьного проекта, которая должна работать как команда dc и состоит из элемента ввода-вывода, набора микросхем, процессора и ОЗУ. В настоящее время я работаю над набором микросхем, в котором я реализовал небольшой класс синтаксического анализа, чтобы иметь возможность получать некоторые инструкции Asm из стандартного ввода или файла, а затем отправьте эти инструкции в ЦП.

Проблема в том, что мои инструкции отсортированы в std :: list, и я хотел бы иметь возможность продвигать их каждую с помощью инструкции foreach. Для этого мне нужно иметь возможность вызывать мою функцию-член push_instruction как указатель функции F for_each; и я не смог найти способ сделать это ...

Есть идеи? вот мой код:

/*
** 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);
}
5
задан SCFrench 19 February 2011 в 12:59
поделиться