2008-10-07 2 views
13

C++ CLI 컴파일러는 수정하지 않고 일부 대형 C++ 클래스 세트를 컴파일 할 수 있습니까?C++ CLI는 C++의 상위 집합입니까?

C++ CLI는 C++의 상위 집합입니까? Wikipedia에 따르면

+2

처음에는이 질문에 혼란 스러웠습니다. 그런 다음 "CLI"는 커맨드 라인 인터페이스가 아닌 Common Language Interface (.net의 일부)를 나타냅니다. 네임 스페이스 충돌! – Neall

+1

죄송합니다 - "공용 언어 인프라"- http://en.wikipedia.org/wiki/Common_Language_Infrastructure – Neall

+0

예, 제 생각에는 커맨드 라인 인터페이스였습니다. 나는 생각했다, 차가운! VMS 질문! – Vagrant

답변

4

기술적으로는 아니지만 C++ 코드의 표준에 따라 다르지만 아마도 괜찮을 것입니다. 창문에 들어가면 문제가 생길 수 있습니다. 나는 우리가 C++/CLI에서 일하는 데 사용한 전체 게임 엔진을 컴파일했다. 동료는 모든 모질라와 같은 행운을 위해 똑같이했습니다.

10

:

++/CLI 대신 C++ 상위가 지향 관리 C++

의, (예를 들어, 키워드의 새로운 세트) 자신의 언어로 생각해야한다 C

+0

비록 새로운 키워드의 대부분조차도 문맥 적이며 다른 코드에서 식별자로 사용할 수 있습니다. – Eclipse

+0

'gcnew','generic' 및'nullptr'의 3 가지 조건 키워드가 있습니다. 마지막 하나는 이제 C++ 키워드입니다. 그래서 C++/CLI가 C++의 상위 집합이되지 못하는 것은 실제로 상당히 작습니다 ... –

2

저는 C++/CLI에 대한 학습 곡선이 새로 생겼습니다. -하지만 나 자신과 같은 질문을 가지고 있었고, 지금까지 결정한 바는 C++/CLI가 언어로서 수퍼 세트라는 것입니다 표준 C++.

CLI 확장을 사용하지 않으면 C++ 코드가 기본 비 관리 코드로 끝나며 본질적으로 동일하지만 기본 x86 대신 CLR IL로 컴파일되어야합니다.

CLI 확장을 사용하고 (개체/처리/관리되는 클래스 사용을 시작하기 시작하면) 기본 CLR 플랫폼과보다 많이 상호 작용을 시작합니다. 그 시점에서, 그것은 근본적으로 새로운 "언어"가되며, "관리되지 않는"측면과 "관리되는"측면 사이에서 생각을 분리해야합니다.

1

마커스 Heege의 책 상태 '비주얼 C++ 프로그래머를위한 전문가 C + +를/CLI.NET'의 3 페이지 :

C++/CLI는 C++ 언어가 서비스의 혜택을 로 만든 확장의 집합입니다 CLI가 구현 한 입니다.

그리고 같은 페이지 아래로 더욱 :

C++/CLI는 C++ 언어의 상위 집합입니다.

그의 우수 도서는 here에서 무료로 얻을 수 있습니다.

+4

책이 잘못 된 것처럼 보입니다. http://stackoverflow.com/questions/4610671/examples-of-iso-c-code-that-is-not-valid-c-cli –

+1

인용 권한 Herb Sutter : "이 확장 세트가 다음과 같은지 여부 : 다른 수퍼 세트 언어, 호환 가능한 방언 및/또는 바인딩 : 나는 그 중 하나를 볼 수있는 합리적인 사람들을 찾을 수 있다고 생각합니다. 당신이 선호하는 명사가 어느 프로그래밍 언어에 대해서도 가장 잘 호환되는 확장 세트입니다 , 표준 또는 기타 [...] "- * [C++/CLI의 설계 이론적 근거] (http://www.gotw.ca/publications/) *, 버전 1.1 - 2006 년 2 월 24 일 참조. – Lumi

2

C++/CLI는 C++의 상위 집합이 아닙니다. 오히려 추가가있는 부분 집합입니다. E.G. C++/CLI는 다중 상속을 지원하지 않습니다.

안젤로

+0

다중 상속 없음 ? 이걸 어디서 봤어? – Gabe

+0

설명서에 있습니까? 모든 CLI 언어는 단일 상속 만 지원합니다. 그러나 아마도 관리되지 않는 코드로 MI를 수행 할 수는 있지만 절대 확인하지 마십시오. –

+0

흠, 위키 백과에서 약간 읽었습니다. 나는 C++/CLI를 "대체"된 Managed C++를 잡아 내지 못했습니다. 불행하게도 Wikipedia 기사는 C++/CLI가 MI를 지원하는 상황에서 언급하지 않습니다. –

1

나는 (거대한) 전체 Qt는 라이브러리를 컴파일 할 수 있었다 (주로 빌드 환경에서뿐만 아니라, Qt는 소스 코드 수정 한 버그) 작은 수정

와 C++/CLI로