1 / 34

Technical Report 1 C++Builder 2009 vs Visual C++ 2008 SP1

Technical Report 1 C++Builder 2009 vs Visual C++ 2008 SP1. ㈜보이드 소프트 김호광 testcode@naver.com msn: testcode@hotmail.com Nateon : testcode@lycos.co.kr. Rock Man X5 를 이식할 때입니다. 때는 바야흐로 2002 년. Play Station 소스가 윈도우로 이식될까요 ? ( 그래픽 라이브러리 제외 ). 예. 아니요.

Télécharger la présentation

Technical Report 1 C++Builder 2009 vs Visual C++ 2008 SP1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Technical Report 1C++Builder 2009 vs Visual C++ 2008 SP1 ㈜보이드 소프트 김호광 testcode@naver.com msn: testcode@hotmail.com Nateon : testcode@lycos.co.kr

  2. Rock Man X5를 이식할 때입니다 때는 바야흐로 2002년

  3. Play Station 소스가 윈도우로 이식될까요? (그래픽 라이브러리 제외) 예 아니요

  4. Visual C++ 문법의 비표준으로‘바로’ 이식이 안되었습니다 아니요

  5. 그러면 왜 Visual C++은 표준에 인색할까요?

  6. Visual C++은 윈도우의 표준(defecto)! ‘비표준 문법’으로 소프트웨어의 다양한 OS 이식을 막아야 합니다 음모론

  7. VC++는 MFC를 포함하여 OS의 기본을 구성하고 있기 때문에 신중하게 추가되어야 합니다.SDK와개발 툴을 MS의 주수익이 아닙니다.때문에 개발 툴에 많은 돈을 쓸 필요는… 일반론

  8. MS는 Visual C++2008에 TR1을 지원해야 했을까요?

  9. Visual C++ 2008의 TR1 지원이유 • ISO ANSI C++ 표준을 강제하기 때문 • EU, 혹은 기업, 국가에서 ISO를 지원하지 않는 SI 환경과 compiler는 퇴출됩니다. • STL과 boost와 같은 라이브러리를 사용하는 개발자들이 다른 회사(STL Port)의 제품을 사용하는 것을 막고자 한 것입니다. • C99와 유니코드를 지원하기 위해서입니다

  10. 표준의 위대함 • ISO ANSI C++ 표준이 제정되었다는 의미는 컴파일러가 다르더라도 C++을 지원하는 컴파일러로 어떠한 cpp가 이식되더라도 실행을 보장한다는 말입니다. 멀티 플랫폼 이식이 저수준에서 보장

  11. What the C++? • C++은 OOP 언어일 수도 있고, 아닐 수 있는 언어. • C++은 패러다임의 언어입니다. • 예를 들면 Ruby는 bond 언어로 특정 목적에 최적화된 스크립트 언어입니다. 한가지 결론을 내기 위해 한가지 방법 밖에 없는 언어입니다 • 그러나 C++은 아나키스트의 언어이기 때문에 프로그래머 수 만큼 다양성이 있습니다.

  12. TR1이란? • Technical Report 1의 약칭 • 기술 보고서 1편의 의미. • C++0x (C++ version 2.0)로도 표현 • 차기 C++ Standard • 아직 ANSI C++에 포함되지 않음 • C++ STL의 무림 고수들이 boost 라이브러리를 만들며 draft를 주도

  13. TR1의 의의 • STL의 제한적인 면을 보강 • 실무에 사용 가능한 기능들이 다수 포함되어 있으며 Python과 같은 script 언어의 생산성 수준의 라이브러리 포함 (tuple, bind, 수학 함수) • C99와 호환성 보강 • Meta Programming Helper로 인하여 C++ 안의 스크립트 수준으로 구문 확장 가능

  14. 표준이 아닌 TR1, defecto TR1 • TR1은 아직 표준이 아닌 라이브러리. • 주의할 점은 각 compiler 회사와 라이브러리 제공자들이 TR1을 모두 준수하고 있지 않다는 점이다. TR1은 C++ 개발 업계의 defecto로써 사용이 확산되고 있다.

  15. TR1 Programming 소개 장점과 파급 효과

  16. <짝> TR1::tuple • STL의 pair를 확장 • 2개가 뭐냐! 여러 개를 넣을 수 있어야 한다는 의견에서 탄생 • 2개 이상의 인자를 묶음으로 처리할 때 편리함. • 게임에서는 간단 NPC의 정보를 담을 때 적용 가능 • 튜플 개수는 10개 이상으로 권고

  17. <공유 포인터> TR1::shared_ptr • 리소스관리는 내게 맡겨라! • 자바의 가베지 컬렉션은 유치하다! • Multi Thread에서도 안전 • 객체와 객체 사이에 공용 데이터 모듈 구축에 유리

  18. 고수의 숨겨진 비급Boost 컴맹도 알 수 있다 C++ Builder 2009가 좋은 점을!

  19. What is Boost? • Boost는 STL에 불만을 품은 천재적인 C++ 프로그래머들이 모여 만든 Library • Boost에서 검증된 Library는 TR1에 적용됨으로써 boost 프로젝트의 장점 인정 • Boost 중 급진적인 Library 의 경우 아직 TR1에서 논의되지 않고 TR2로 논의를 진행 하고 있음. Boost는 무림 고수들의 비급!

  20. Boost의 인스톨 여부

  21. Boost의 인스톨 여부

  22. 각각의 C++ compiler의 기능 지원 C++Builder 2009 vs Visual C++ 2008 sp1

  23. Test Environment • Windows Vista Home Premium K SP1 • Core 2 T7200 • Memory 2GB • C++ Builder 2009 Evolution version • Visual C++ 2008 Express SP1

  24. TR1 support C++ Builder 2009 Visual C ++ 2008 SP1 • Array • Functional • Memory • Random • Tuple • Unordered_map (hash) • Unordered_set • utility • Array • Functional (느림) • Memory • Random (문제 있음) • Tuple • Unordered_map (hash) • Unordered_set • utility

  25. Boost support C++ Builder 2009 Visual C ++ 2008 SP1 • Boost library 지원 • 1.35 버전 • Not support • 별도로 boost library 설치가 필요

  26. Visual C++에서도 boost나 TR1을 사용할 수 있는데C++Builder 2009가 주목을 받나요?

  27. TR1::random • VC 2008 SP1의 Compiler 자체의 문제가 있기 때문입니다 • Random engine으로 많이 사용하는 Mersenne twister engine 기반의 mt19937 Class가 잘못된 연산을 합니다. • BCB 2009와 VC 2008의 동일 예제를 살펴보면 결과를 알 수 있습니다.

  28. TR1:: Random Source 원본 소스 by lyn

  29. VC++ 2008 TR1::Random

  30. 지정 범위가 100에서 500입니다 지정 범위가 벗어나는 음수가… ㅠ_ㅠ

  31. 혹시나 해서 하나 더 짰습니다

  32. 결과는 같군요…

  33. 그렇기 때문에 C++Builder 2009 입니다! 앞서가는 개발자의 분명한 선택은 하나!

  34. Reference • BOOST: http://www.boost.org • TR1 : http://www.boost.org/doc/libs/1_35_0/doc/html/boost_tr1.html • C++Builder : http://dn.codegear.com/article/38478 • MSDN TR1 : http://msdn2.microsoft.com/en-us/library/bb982198.aspx

More Related