performer는 히승군에게 배운건데

클래스내의 컨테이너에 먼가를 조작하기 위해서 사용한다.
컨테이너 자체를 노출하는건 보통 stl컨테이너를 사용하기 때문에 dll프로젝트인 경우는 stl컨테이너의 익스포트가 지랄맞기-_-때문에 낭피

그래서
struct ISEE_SkillInfoPerformer
{
virtual void operator() ( IN const tstring& rName, IN const SEE_ActionInfoBasePtr pActionInfo ) = 0;
};

이런식의 인터페이스 클래스를 만들고

void
SEE_SkillInfo::Perform( IN ISEE_SkillInfoPerformer& rPerform )
{
ACTIONINFO_CONTAINER::iterator itr = m_ActionInfos.begin();
ACTIONINFO_CONTAINER::iterator endItr = m_ActionInfos.end();

for( ; itr != endItr; itr++ )        // 사실 이부분도 boost와 foreach의 조합으로 어케 사부닥-_-될것 같은데
  rPerform( itr->first, itr->second );
}

이런식의 호출을 해준다.
그래서 실제 사용할 때는 인터페이스를 상속받아서 객체를 넘겨준다 라는건데

문득 함수 템플릿을 사용하면 어떨까...라는 생각이 들었는데
그럼 컨테이너를 결국 dll외부로 노출해야 하므로 어차피 낭피-_-

흐으음-_-;

'게임개발 > 생각' 카테고리의 다른 글

나쁜 아이디어를 위한 좋은 방법  (0) 2005.12.08
툴과 매뉴얼  (0) 2005.11.22
내가 컨텐츠를 만들기를 좋아하는 이유...  (0) 2005.11.22
카툰렌더링을 하다보니...  (0) 2005.11.14
기술과 컨텐츠  (0) 2005.04.07

+ Recent posts