다음을 통해 공유


빠른 참조(C++/CX)

Windows 런타임은 UWP(유니버설 Windows 플랫폼) 앱을 지원합니다. 이러한 앱은 신뢰할 수 있는 운영 체제 환경에서만 실행되고, 승인된 기능, 데이터 형식 및 장치를 사용하며 Microsoft Store를 통해 배포됩니다. C++/CX는 Windows 런타임용 앱 작성을 간소화합니다. 이 문서는 빠른 참고자료일 뿐입니다. 자세한 내용은 형식 시스템을 참조하세요.

명령줄에서 빌드하는 경우 /ZW 컴파일러 옵션을 사용하여 UWP 앱 또는 Windows 런타임 구성 요소를 빌드합니다. Windows 런타임 메타데이터(.winmd) 파일에 정의된 Windows 런타임 선언에 액세스하려면 #using 지시문 또는 /FU 컴파일러 옵션을 지정합니다. UWP 앱용 프로젝트를 만들 때, Visual Studio에서는 이러한 옵션을 기본값으로 설정하고 모든 Windows 런타임 라이브러리에 대한 참조를 추가합니다.

빠른 참조

개념 표준 C++ C++/CX 설명
기본 형식 C++ 기본 형식 Windows 런타임에 정의된 기본 형식을 구현하는 C++/CX 기본 형식입니다. default 네임스페이스에는 기본 제공 C++/CX 기본 형식이 포함되어 있습니다. 컴파일러는 C++/CX 기본 형식을 표준 C++ 형식에 암시적으로 매핑합니다.

네임스페이스의 Platform 패밀리에는 기본 Windows 런타임 형식을 구현하는 형식이 포함되어 있습니다.
bool bool 8비트 부울 값입니다.
wchar_t, char16_t char16 유니코드(UTF-16) 코드 포인트를 나타내는 숫자가 아닌 16비트 값입니다.
short

unsigned short
int16

uint16
16비트 부호 있는 정수입니다.

16비트 부호 없는 정수입니다.
int

unsigned int
int

uint32
32비트 부호 있는 정수입니다.

32비트 부호 없는 정수입니다.
long long 또는 __int64

unsigned long long
int64

uint64
64비트 부호 있는 정수입니다.

64비트 부호 없는 정수입니다.
float, double float32, float64 32비트 또는 64비트 IEEE 754 부동 소수점 숫자입니다.
enum enum class

또는

enum struct
32비트 열거형입니다.
(적용되지 않음) Platform::Guid Platform 네임스페이스의 숫자가 아닌 128비트 값(GUID)입니다.
std::time_get Windows::Foundation::DateTime 날짜/시간 구조체입니다.
(적용되지 않음) Windows::Foundation::TimeSpan 시간 범위 구조체입니다.
(적용되지 않음) Platform::Object^ Windows 런타임 형식 시스템의 C++ 보기의 참조 횟수가 계산된 기본 개체입니다.
std::wstring

L"..."
Platform::String^ Platform::String^ 은 참조 횟수가 계산된 변경할 수 없는 유니코드 문자의 시퀀스(텍스트를 나타냄)입니다.
포인터 개체에 대한 포인터(*)

std::shared_ptr
개체 핸들(^, "햇"으로 발음)

T^ identifier
모든 Windows 런타임 클래스는 개체 핸들 한정자를 사용하여 선언됩니다. 개체의 멤버는 화살표(->) 클래스 멤버 액세스 연산자를 사용하여 액세스됩니다.

햇 한정자는 "자동으로 참조 횟수가 계산되는 Windows 런타임 개체에 대한 포인터"를 의미합니다. 더 정확하게 말하자면, 개체 핸들은 컴파일러가 개체의 참조 횟수를 자동 관리하고 참조 횟수가 0이 되면 개체를 삭제하기 위해 코드를 삽입해야 함을 선언합니다.
참조 개체(&)에 대한 참조입니다.

T& identifier
추적 참조(%):

T% identifier
Windows 런타임 형식만 추적 참조 한정자를 사용하여 선언할 수 있습니다. 개체의 멤버는 점(.) 클래스 멤버 액세스 연산자를 사용하여 액세스됩니다.

추적 참조는 "자동으로 참조 횟수가 계산되는 Windows 런타임 개체에 대한 참조"를 의미합니다. 더 정확하게 말하면 추적 참조는 컴파일러가 개체의 참조 수를 자동 관리하는 코드를 삽입해야 한다고 선언합니다. 참조 수가 0으로 설정되면 코드는 개체를 삭제합니다.
동적 형식 선언 new ref new Windows 런타임 개체를 할당한 다음 해당 개체에 대한 핸들을 반환합니다.
개체 수명 관리 delete identifier

delete[] identifier
소멸자를 호출합니다. 수명은 참조 횟수에 따라 결정됩니다. delete 호출은 소멸자를 호출하지만, 그 자체로는 메모리를 사용 가능하게 만들지 않습니다.
배열 선언 T identifier[]

std::array identifier
Array<T^>^ identifier( size )

또는

WriteOnlyArray<T^> identifier( size )
수정 가능하거나 쓰기 전용인 T^ 형식 배열을 선언합니다. 배열 자체도 개체 핸들 한정자를 사용하여 선언해야 하는 참조 횟수가 계산되는 개체입니다.

배열 선언에서는 Platform 네임스페이스에 있는 템플릿 헤더 클래스를 사용합니다.
클래스 선언 class identifier {}

struct identifier {}
ref class identifier {}

ref struct identifier {}
기본값 private 액세스 가능성이 있는 런타임 클래스를 선언합니다.

기본값 public 액세스 가능성이 있는 런타임 클래스를 선언합니다.
구조체 선언 struct identifier {}

(즉, POD(Plain Old Data) 구조체)
value class identifier {}

value struct identifier {}
기본값 private 액세스 가능성이 있는 POD 구조체를 선언합니다.

value class은 Windows 메타데이터로 나타낼 수 있지만, 표준 C++ class 는 나타낼 수 없습니다.

기본값 public 액세스 가능성이 있는 POD 구조체를 선언합니다.

value struct은 Windows 메타데이터로 나타낼 수 있지만, 표준 C++ struct 는 나타낼 수 없습니다.
인터페이스 선언 순수 가상 함수만 포함하는 추상 클래스입니다. interface class identifier {}

interface struct identifier {}
기본값 private 액세스 가능성이 있는 인터페이스를 선언합니다.

기본값 public 액세스 가능성이 있는 인터페이스를 선언합니다.
대리인 std::function public delegate return-type delegate-type-identifier ( [ 매개 변수 ] ); 함수 호출과 같이 호출할 수 있는 개체를 선언합니다.
이벤트 (적용되지 않음) event delegate-type-identifier event-identifier;

delegate-type-identifier delegate-identifier = ref new delegate-type-identifier( this [, 매개 변수] );

event-identifier += *delegate-identifier;

또는

EventRegistrationToken token-identifier = object.event-identifier += delegate-identifier;

또는

auto token-identifier = object.event-identifier::add( delegate-identifier );

object.event-identifier -= token-identifier;

또는

object.event-identifier::remove( token-identifier );
이벤트가 발생한 경우에 호출되는 이벤트 처리기(대리자) 컬렉션을 저장하는 event 개체를 선언합니다.

이벤트 처리기를 만듭니다.

이벤트 처리기를 추가합니다.

이벤트 처리기를 추가하면 이벤트 토큰(token-identifier)이 반환됩니다. 이벤트 처리기를 명시적으로 제거하려면 나중에 사용하도록 이벤트 토큰을 저장해야 합니다.

이벤트 처리기를 제거합니다.

이벤트 처리기를 제거하려면 이벤트 처리기가 추가될 때 저장한 이벤트 토큰을 지정해야 합니다.
속성 (적용되지 않음) property T identifier;

property T identifier[ index ];

property T default[ index ];
클래스 또는 개체 멤버 함수가 데이터 멤버 또는 인덱싱된 배열 요소에 액세스하는 데 사용된 같은 구문을 사용하여 액세스됨을 선언합니다.

클래스 또는 개체 멤버 함수의 속성을 선언합니다.

개체 멤버 함수의 인덱싱된 속성을 선언합니다.

클래스 멤버 함수의 인덱싱된 속성을 선언합니다.
매개 변수화된 형식 템플릿 generic <typename T> interface class identifier {}

generic <typename T > delegate [return-type] delegate-identifier() {}
매개 변수화된 인터페이스 클래스를 선언합니다.

매개 변수화된 대리자를 선언합니다.
Nullable 값 형식 std::optional<T> Platform::IBox <T> 스칼라 형식의 변수 및 value 구조체가 nullptr의 값을 가질 수 있도록 합니다.

참고 항목

C++/CX 언어 참조