빠른 참조(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 의 값을 가질 수 있도록 합니다. |