Мне было интересно, есть ли способ имитировать это поведение делегата (из C #) в C ++
new ModifyTargetingStatus("Reversal", "Reverses physical attacks back at the user", -1, new List<CALL_CONDITION>(){CALL_CONDITION.Targetted}, attemptChange: delegate(CharacterMove move, BattleCharacter[] users, ref BattleCharacter[] targets, BattleCharacter holder, BattleField field)
{
if (targets != null && targets.Length == 1 && targets[0] == holder &&
(move.MoveClass == MOVE_CLASS.MC_BASIC_ATTACK ||
move.MoveClass == MOVE_CLASS.MC_STACKED_ATTACK) &&
!move.MoveFlags.Contains(MOVE_FLAG.MF_UNREFLECTABLE))
{
targets = users;
move.Reflected = true;
return true;
}
return false;
})
Я посмотрел на boost :: function и boost :: bind и статью о FastDelegates по проекту кода, но все они, похоже, требуют, чтобы вы определили функцию где-то еще, а затем привязали ее. Я хотел бы иметь возможность предоставить функцию при создании объекта, если это возможно
Заранее спасибо