Разве Вы не были бы лучше обслужены для использования стандартного OO. Определите контракт (виртуальный класс) и реализация, что в Вашем собственном классе, тогда просто передайте ссылку на свой собственный класс и позвольте получателю вызвать функцию контракта.
Используя Ваш пример (я переименовал 'test2' метод к 'buttonAction'):
class ButtonContract
{
public:
virtual void buttonAction();
}
class testMenu : public MenuScreen, public virtual ButtonContract
{
public:
bool draw;
MenuButton<testMenu> x;
testMenu():MenuScreen("testMenu")
{
x.SetButton(100,100,TEXT("buttonNormal.png"),
TEXT("buttonHover.png"),
TEXT("buttonPressed.png"),
100, 40, &this);
draw = false;
}
//Implementation of the ButtonContract method!
void buttonAction()
{
draw = true;
}
};
В методе получателя, Вы храните ссылку на ButtonContract, тогда когда Вы хотите выполнить, действие кнопки просто звонят, 'buttonAction' метод этого хранил объект ButtonContract.
Чтобы показать тег фиксации:
$ git describe --tags <commit>
Показать предыдущую фиксацию:
$ git rev-list -1 <commit>^
Чтобы показать следующую фиксацию:
$ git rev-list -1 <commit>..HEAD
Чтобы показать теги, которые содержат фиксацию (т. Е. Теги, предшествующие фиксации):
git tag --contains <commit>