2011-03-13 7 views
0

나는 비슷한 질문을 여기 C++ delegate creation에 요청했지만 새로운 제한 사항으로이 작업을 수행해야합니다. 나는 빨리 궁금부스트를 사용한 C++ 위임자 생성

질문을 다시 언급하겠습니다 경우 프로그래머 C++ 0X를 사용하지 않고 내가이 일을 할 수 있어야합니다

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에서 (C에서 #)이 위임 동작을 모방하는 방법 내가 gcc의 버전에 붙어 다니기 때문에 doesnt 지원 C++ 0x lambdas. 내가 부스트 라이브러리를 사용할 수 있지만 나는 그것에 구체적으로 할 방법을 알아낼 수 없다는 진입이야.

미리 도움 주셔서 감사합니다.

답변

0

명명되지 않은 기능을 만들려면 어느 라이브러리가 작동해야합니다.

  • Boost Phoenix
  • Boost.Lambda
  • 너무 this question를 참조

      은이 라이브러리는 언젠가 병합 않습니다.

    0

    boost::bind이 문제의 일반적인 해결책입니다. 자세한 내용은 해당 설명서를 참조하십시오.

    관련 문제