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 |