用C++实现C++委托创建

用C++实现C++委托创建,c++,boost,C++,Boost,我在这里问了一个类似的问题,但我需要做一个新的限制。我会很快重申这个问题 我想知道是否有一种方法可以模仿C中C的这种委托行为++ new ModifyTargetingStatus("Reversal", "Reverses physical attacks back at the user", -1, new List<CALL_CONDITION>(){CALL_CONDITION.Targetted}, attemptChange: delegate(CharacterMove

我在这里问了一个类似的问题,但我需要做一个新的限制。我会很快重申这个问题

我想知道是否有一种方法可以模仿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;
                })
我需要能够在不使用C++0x的情况下做到这一点,因为我被困在一个不支持C++0x lambdas的gcc版本上。我有可用的boost库,但我正在深入了解它,所以我不知道如何具体做到这一点


提前感谢您的帮助

这两个库都可以用于创建未命名函数

请参见,注意这两个库有一天会合并。

boost::bind是解决此问题的常用方法。有关详细信息,请参阅他们的文档