C++/CX

C++/CX(C++ component extensions, 씨 플러스 플러스 컴포넌트 확장)는 마이크로소프트가 윈도 폰 8과 윈도우 8과 같은 새로운 윈도 런타임을 지원하기 위해 고안한, C++를 확장한 언어 규격이다.

문법이 C++/CLI와 유사하지만, 컴파일한 결과물은 C++/CLI의 Managed Code가 아닌 네이티브 코드다. 현재 비주얼 C++ 2012 이상에서 사용할 수 있다.

구문 변화 
윈도 런타임을 위한 추가 구문을 제외하면, 기본적으로 C++11 표준과 호환되도록 설계되어 있다.

객체 생성 
참조 포인터 ^는 CLI와 같으나 gcnew를 사용하지 않고 신규 키워드 ref new를 사용한다

C++/CLI
Obj^ obj = gcnew Obj();

C++/CX
Obj^ obj = ref new Obj();

클래스 파일 분리 
클래스를 정의하는 부분을 여러개로 나눌 수 있으며 키워드 partial를 사용한다.

// test.internal.h
partial ref class Test
{
private:
    int _priv_num;
};

// test.h
#include "test.internal.h"
ref class Test
{
public:
    int GetNumber();
}

// test.cpp
#include "pch.h"
#include "test.h"
int Test::GetNumber()
{
    return _priv_num;
}

런타임 제네릭 
C++/CX는 윈도 런타임의 런타임 기반 동적 제네릭을 지원한다.

generic <typename T>
public ref class Test
{
private:
    property T Value;
}

같이 보기 
 C++
 C++/CLI

외부 링크 
 C++/CX 언어 참조

C++
C++ 프로그래밍 언어 계열