Boost & Tips<br />2010-05-11<br />최성기<br />
agenda<br />boost::assign<br />boost::timer<br />boost::format<br />enum을 쓰기 편하게 만들자<br />서버 다운시 재실행 스크립트<br />문법 변경사항 ( v...
assign to std::vector<br />
boost::assign<br />since boost 1.32<br />operator, / operator()를 활용<br />컨테이너에 값을 쉽게 넣어보자<br />편리한 인터페이스를 만드는 방법<br />
std::map에 원소를 넣는 기존 방법<br />
assign to std::map<br />
queue, list, stack… 다양한 아이디어<br />http://www.boost.org/doc/libs/1_43_0/libs/assign/doc/index.html<br />
클래스 만들 때, interface design에 참고<br />
GetTickCount()<br />
boost::timer<br />timer.hpp<br />
boost::format<br />
printf(…)를 레벨업 시키자.<br />어서 오시오, %s.<br />그대를 기다리고 있었소.<br />우린 %s만렙이 필요하오.<br />%s, 하루빨리 만렙을 찍으시오.<br />%s가 없으니 지금 다른 직업 ...
해결방법 1 - 자체제작<br />기획자분들잘 들으세요.<br />($nick)은 닉네임,<br />($job)는 직업이름,<br />($lv)는 캐릭터레벨입니다.<br />자꾸 물어보지 마시고 책상에 적어서 붙여두세요...
해결방법 1 - 자체제작<br />while( token = _strtok( szCopy ) )<br />{<br />  if( strcmp( token, “($nick)” ) == 0 )<br />  {<br />  ...
해결방법 2 – CString::FormatMessage<br />CString::Format<br />CString::FormatV<br />CString::FormatMessage<br />%1!d! 따위를 기획자에...
해결방법 3 – boost::format<br />어서 오시오, %1%.<br />그대를 기다리고 있었소.<br />우린 %2%만렙이 필요하오.<br />%1%, 하루빨리 만렙을 찍으시오.<br />%1%가 없으니 지금...
boost::format, excel, lua<br />
enum + macro<br />MajorCode.h<br />#define _ENUM( id, desc ) id,<br />enumSomeType<br />{<br />#include “SomeType.enum.h”<...
공통 에러코드 처리<br />
서버 다운 -> 업데이트 -> 재실행<br />Demo<br />
function-try block in vc++ 7.0<br />
for each in vc++ 8.0 (비표준)<br />
keyword __super in vc++ 8.0 (비표준)<br />
__VA_ARGS__ in vc++ 8.0<br />
오늘 한 이야기, 앞으로 할 이야기<br />boost:assign<br />boost::format<br />boost::timer<br />boost:thread<br />boost::smart_ptr<br />bo...
Upcoming SlideShare
Loading in …5
×

100511 boost&tips 최성기

1,883 views
1,814 views

Published on

새로운 팀에서 처음으로 진행한 프로젝트 외적인 기술 세미나 발표 자료.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,883
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

100511 boost&tips 최성기

  1. 1. Boost & Tips<br />2010-05-11<br />최성기<br />
  2. 2. agenda<br />boost::assign<br />boost::timer<br />boost::format<br />enum을 쓰기 편하게 만들자<br />서버 다운시 재실행 스크립트<br />문법 변경사항 ( vc++ 8.0 )<br />
  3. 3. assign to std::vector<br />
  4. 4. boost::assign<br />since boost 1.32<br />operator, / operator()를 활용<br />컨테이너에 값을 쉽게 넣어보자<br />편리한 인터페이스를 만드는 방법<br />
  5. 5. std::map에 원소를 넣는 기존 방법<br />
  6. 6. assign to std::map<br />
  7. 7. queue, list, stack… 다양한 아이디어<br />http://www.boost.org/doc/libs/1_43_0/libs/assign/doc/index.html<br />
  8. 8. 클래스 만들 때, interface design에 참고<br />
  9. 9. GetTickCount()<br />
  10. 10. boost::timer<br />timer.hpp<br />
  11. 11. boost::format<br />
  12. 12. printf(…)를 레벨업 시키자.<br />어서 오시오, %s.<br />그대를 기다리고 있었소.<br />우린 %s만렙이 필요하오.<br />%s, 하루빨리 만렙을 찍으시오.<br />%s가 없으니 지금 다른 직업 다 있고 %s만 없소.<br />지금 레벨이 %d가 뭡니까…blah..<br />strNickname.c_str() / 뉘집딸래미<br />strJobName.c_str() / 사냥꾼<br />strNickname.c_str() / 뉘집딸래미<br />strNickname.c_str() / 뉘집딸래미<br />strJobName.c_str() / 사냥꾼<br />nCharLevel / 77<br />
  13. 13. 해결방법 1 - 자체제작<br />기획자분들잘 들으세요.<br />($nick)은 닉네임,<br />($job)는 직업이름,<br />($lv)는 캐릭터레벨입니다.<br />자꾸 물어보지 마시고 책상에 적어서 붙여두세요.<br />어서 오시오, ($nick).<br />그대를 기다리고 있었소.<br />우린 ($job) 만렙이 필요하오.<br />($nick), 하루빨리 만렙을 찍으시오.<br />($nick)가 없으니 지금 다른 직업 다 있고 ($job) 만 없소.<br />지금 레벨이 ($lv) 가 뭡니까…blah..<br />
  14. 14. 해결방법 1 - 자체제작<br />while( token = _strtok( szCopy ) )<br />{<br /> if( strcmp( token, “($nick)” ) == 0 )<br /> {<br /> // … 어우… 귀찮음…<br /> }<br /> else …<br />boost::replace_all( strDesc, “($nick)”, strNick.c_str() );<br />boost::replace_all( strDesc, “($job)”, strJob.c_str() );<br />boost::replace_all( strDesc, “($lv)”, nCharLv ); // error<br />
  15. 15. 해결방법 2 – CString::FormatMessage<br />CString::Format<br />CString::FormatV<br />CString::FormatMessage<br />%1!d! 따위를 기획자에게 가르치느니,<br />직접 만드는 게 정신건강에 좋다.<br />
  16. 16. 해결방법 3 – boost::format<br />어서 오시오, %1%.<br />그대를 기다리고 있었소.<br />우린 %2%만렙이 필요하오.<br />%1%, 하루빨리 만렙을 찍으시오.<br />%1%가 없으니 지금 다른 직업 다 있고 %2%만 없소.<br />지금 레벨이 %3%가 뭡니까…blah..<br />strNickname / 뉘집딸래미<br />strJobName / 사냥꾼<br />nCharLevel / 77<br />
  17. 17. boost::format, excel, lua<br />
  18. 18. enum + macro<br />MajorCode.h<br />#define _ENUM( id, desc ) id,<br />enumSomeType<br />{<br />#include “SomeType.enum.h”<br />}<br />SomeType.enum.h<br />_ENUM( ST_ABC, 철수 )<br />_ENUM( ST_DEF, 영희 )<br />_ENUM( ST_GHI, 바둑이 )<br />
  19. 19. 공통 에러코드 처리<br />
  20. 20. 서버 다운 -> 업데이트 -> 재실행<br />Demo<br />
  21. 21. function-try block in vc++ 7.0<br />
  22. 22. for each in vc++ 8.0 (비표준)<br />
  23. 23. keyword __super in vc++ 8.0 (비표준)<br />
  24. 24. __VA_ARGS__ in vc++ 8.0<br />
  25. 25. 오늘 한 이야기, 앞으로 할 이야기<br />boost:assign<br />boost::format<br />boost::timer<br />boost:thread<br />boost::smart_ptr<br />boost::bind<br />functor와 boost:rambda, C++0x rambda<br />std::ostream과 호환되는 class data dump system<br />enum정의를 문자열로 만드는 괜찮은 방법<br />서버 다운 재실행 스크립트<br />디버깅 환경 구축 : dump analysis system, bugtrap<br />디버깅 환경 구축 : symbol server setting<br />Daily build & Release Tag(version) 관리<br />RTTI code – from Gamebryo<br />메시지 드리븐 아키텍쳐 만들기 : state pattern, message pattern<br />새로 추가됐지만, 잘 모르는 문법들<br />… and more<br />

×