Technical report 1 c builder 2009 vs visual c 2008 sp1
This presentation is the property of its rightful owner.
Sponsored Links
1 / 34

Technical Report 1 C++Builder 2009 vs Visual C++ 2008 SP1 PowerPoint PPT Presentation


  • 95 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Technical report 1 c builder 2009 vs visual c 2008 sp1

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

㈜보이드 소프트 김호광

[email protected]

msn: [email protected]

Nateon : [email protected]


Rock man x5

Rock Man X5를 이식할 때입니다

때는 바야흐로 2002년


Play station

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

아니요


Visual c

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

아니요


Visual c1

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


Visual c defecto os

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

음모론


Vc mfc os sdk ms

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

일반론


Ms visual c 2008 tr1

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


Visual c 2008 tr1

Visual C++ 2008의 TR1 지원이유

  • ISO ANSI C++ 표준을 강제하기 때문

  • EU, 혹은 기업, 국가에서 ISO를 지원하지 않는 SI 환경과 compiler는 퇴출됩니다.

  • STL과 boost와 같은 라이브러리를 사용하는 개발자들이 다른 회사(STL Port)의 제품을 사용하는 것을 막고자 한 것입니다.

  • C99와 유니코드를 지원하기 위해서입니다


Technical report 1 c builder 2009 vs visual c 2008 sp1

표준의 위대함

  • ISO ANSI C++ 표준이 제정되었다는 의미는 컴파일러가 다르더라도 C++을 지원하는 컴파일러로 어떠한 cpp가 이식되더라도 실행을 보장한다는 말입니다.

    멀티 플랫폼 이식이 저수준에서 보장


What the c

What the C++?

  • C++은 OOP 언어일 수도 있고, 아닐 수 있는 언어.

  • C++은 패러다임의 언어입니다.

  • 예를 들면 Ruby는 bond 언어로 특정 목적에 최적화된 스크립트 언어입니다. 한가지 결론을 내기 위해 한가지 방법 밖에 없는 언어입니다

  • 그러나 C++은 아나키스트의 언어이기 때문에 프로그래머 수 만큼 다양성이 있습니다.


Technical report 1 c builder 2009 vs visual c 2008 sp1

TR1이란?

  • Technical Report 1의 약칭

  • 기술 보고서 1편의 의미.

  • C++0x (C++ version 2.0)로도 표현

  • 차기 C++ Standard

  • 아직 ANSI C++에 포함되지 않음

  • C++ STL의 무림 고수들이 boost 라이브러리를 만들며 draft를 주도


Technical report 1 c builder 2009 vs visual c 2008 sp1

TR1의 의의

  • STL의 제한적인 면을 보강

  • 실무에 사용 가능한 기능들이 다수 포함되어 있으며 Python과 같은 script 언어의 생산성 수준의 라이브러리 포함 (tuple, bind, 수학 함수)

  • C99와 호환성 보강

  • Meta Programming Helper로 인하여 C++ 안의 스크립트 수준으로 구문 확장 가능


Tr1 defecto tr1

표준이 아닌 TR1, defecto TR1

  • TR1은 아직 표준이 아닌 라이브러리.

  • 주의할 점은 각 compiler 회사와 라이브러리 제공자들이 TR1을 모두 준수하고 있지 않다는 점이다.

    TR1은 C++ 개발 업계의 defecto로써 사용이 확산되고 있다.


Tr1 programming

TR1 Programming 소개

장점과 파급 효과


Tr1 tuple

<짝> TR1::tuple

  • STL의 pair를 확장

  • 2개가 뭐냐! 여러 개를 넣을 수 있어야 한다는 의견에서 탄생

  • 2개 이상의 인자를 묶음으로 처리할 때 편리함.

  • 게임에서는 간단 NPC의 정보를 담을 때 적용 가능

  • 튜플 개수는 10개 이상으로 권고


Tr1 shared ptr

<공유 포인터> TR1::shared_ptr

  • 리소스관리는 내게 맡겨라!

  • 자바의 가베지 컬렉션은 유치하다!

  • Multi Thread에서도 안전

  • 객체와 객체 사이에 공용 데이터 모듈 구축에 유리


Boost

고수의 숨겨진 비급Boost

컴맹도 알 수 있다 C++ Builder 2009가 좋은 점을!


What is boost

What is Boost?

  • Boost는 STL에 불만을 품은 천재적인 C++ 프로그래머들이 모여 만든 Library

  • Boost에서 검증된 Library는 TR1에 적용됨으로써 boost 프로젝트의 장점 인정

  • Boost 중 급진적인 Library 의 경우 아직 TR1에서 논의되지 않고 TR2로 논의를 진행 하고 있음.

    Boost는 무림 고수들의 비급!


Boost1

Boost의 인스톨 여부


Boost2

Boost의 인스톨 여부


C compiler

각각의 C++ compiler의 기능 지원

C++Builder 2009 vs Visual C++ 2008 sp1


Test environment

Test Environment

  • Windows Vista Home Premium K SP1

  • Core 2 T7200

  • Memory 2GB

  • C++ Builder 2009 Evolution version

  • Visual C++ 2008 Express SP1


Tr1 support

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


Boost support

Boost support

C++ Builder 2009

Visual C ++ 2008 SP1

  • Boost library 지원

  • 1.35 버전

  • Not support

  • 별도로 boost library 설치가 필요


Visual c boost tr1 c builder 2009

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


Tr1 random

TR1::random

  • VC 2008 SP1의 Compiler 자체의 문제가 있기 때문입니다

  • Random engine으로 많이 사용하는 Mersenne twister engine 기반의 mt19937 Class가 잘못된 연산을 합니다.

  • BCB 2009와 VC 2008의 동일 예제를 살펴보면 결과를 알 수 있습니다.


Tr1 random source

TR1:: Random Source

원본 소스 by lyn


Vc 2008 tr1 random

VC++ 2008 TR1::Random


100 500

지정 범위가 100에서 500입니다

지정 범위가 벗어나는 음수가… ㅠ_ㅠ


Technical report 1 c builder 2009 vs visual c 2008 sp1

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


Technical report 1 c builder 2009 vs visual c 2008 sp1

결과는 같군요…


C builder 2009

그렇기 때문에 C++Builder 2009 입니다!

앞서가는 개발자의 분명한 선택은 하나!


Reference

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


  • Login