Referência rápida (C++/CX)

O Windows Runtime dá suporte a aplicativos UWP (Plataforma Universal do Windows). Esses aplicativos são executados apenas em um ambiente de sistema operacional confiável, usam funções, tipos de dados e dispositivos autorizados e são distribuídos por meio da Microsoft Store. O C++/CX simplifica a escrita de aplicativos para o Windows Runtime. Este artigo é uma referência rápida. Para obter uma documentação mais completa, confira Sistema de tipos.

Ao compilar na linha de comando, use a opção de compilador /ZW para compilar um aplicativo UWP ou componente do Windows Runtime. Para acessar as declarações do Windows Runtime, que são definidas nos novos arquivos de metadados (.winmd) do Windows Runtime, especifique a diretiva #using ou a opção de compilador /FU. Quando você cria um projeto para um aplicativo UWP, por padrão, o Visual Studio define essas opções e adiciona referências a todas as bibliotecas do Windows Runtime.

Referência rápida

Conceito C++ Padrão C++/CX Comentários
Tipos fundamentais Tipos fundamentais do C++. Os tipos fundamentais do C++/CX que implementam os tipos fundamentais definidos no Windows Runtime. O namespace default contém tipos fundamentais internos do C++/CX. O compilador mapeia implicitamente tipos fundamentais C++/CX para tipos C++ padrão.

A família de namespaces Platform contém tipos que implementam tipos fundamentais do Windows Runtime.
bool bool Um valor Booliano de 8 bits.
wchar_t, char16_t char16 Um valor não numérico de 16 bits que representa um ponto de código Unicode (UTF-16).
short

unsigned short
int16

uint16
Um inteiro de 16 bits com sinal.

Um inteiro sem sinal de 16 bits.
int

unsigned int
int

uint32
Um inteiro com sinal de 32 bits.

Um inteiro sem sinal de 32 bits.
long long - ou - __int64

unsigned long long
int64

uint64
Um inteiro com sinal de 64 bits.

Um inteiro sem sinal de 64 bits.
float, double float32, float64 Um número de ponto flutuante IEEE 754 de 32 ou 64 bits.
enum enum class

-ou-

enum struct
Uma enumeração de 32 bits.
(Não se aplica) Platform::Guid Um valor não numérico de 128 bits (uma GUID) no namespace Platform .
std::time_get Windows::Foundation::DateTime Uma estrutura date-time.
(Não se aplica) Windows::Foundation::TimeSpan Uma estrutura timespan.
(Não se aplica) Platform::Object^ O objeto base contado por referência na exibição C++ do sistema de tipos do Windows Runtime.
std::wstring

L"..."
Platform::String^ Platform::String^ é uma sequência de caracteres Unicode imutável, contada por referência, que representa texto.
Ponteiro Ponteiro para objeto (*):

std::shared_ptr
Handle-to-object (^ou "hat"):

T^ identifier
Todas as classes do Windows Runtime são declaradas usando o modificador handle-to-object. Os membros do objeto são acessados usando o operador de acesso ao membro da classe (->) de seta.

O modificador hat significa "ponteiro para um objeto Windows Runtime que é contado automaticamente de referência". Mais precisamente, handle-to-object declara que o compilador deve inserir código para gerenciar automaticamente a contagem de referência de objeto e excluirá o objeto se a contagem de referência chegar a zero
Referência Referência para um objeto (&):

T& identifier
Referência de rastreamento (%):

T% identifier
Somente os tipos do Windows Runtime podem ser declarados usando o modificador de referência de rastreamento. Os membros do objeto são acessados usando o operador de acesso ao membro da classe (.) de ponto.

A referência de acompanhamento significa "uma referência a um objeto Windows Runtime que é contado automaticamente". Mais precisamente, uma referência de acompanhamento declara que o compilador deve inserir código para gerenciar a contagem de referência do objeto automaticamente. O código excluirá o objeto se a contagem de referências chegar a zero.
Declaração de tipo dinâmico new ref new Aloca um objeto do Windows Runtime e retorna um identificador para esse objeto.
gerenciamento de vida útil de objeto delete identifier

delete[] identifier
(Invoca o destruidor.) A vida útil é determinada pela contagem de referência. Uma chamada para delete invoca o destruidor, mas ele próprio não libera memória.
declaração de matriz T identifier[]

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

-ou-

WriteOnlyArray<T^> identifier( size )
Declara uma matriz unidimensional modificável ou somente gravação do tipo T^. A própria matriz também é um objeto contado por referência que deve ser declarada usando o modificador handle-to-object.

(As declarações de matriz usam uma classe de cabeçalho de modelo que está no namespace Platform )
declaração de classe class identifier {}

struct identifier {}
ref class identifier {}

ref struct identifier {}
Declara uma classe de runtime que tem acessibilidade private padrão.

Declara uma classe de runtime que tem acessibilidade public padrão.
declaração de estrutura struct identifier {}

(isto é, uma estrutura POD (Plain Old Data))
value class identifier {}

value struct identifier {}
Declara um struct POD que tem acessibilidade private padrão.

Um value class pode ser representado em metadados do Windows, mas um class C++ padrão não pode ser.

Declara um struct POD que tem acessibilidade public padrão.

Um value struct pode ser representado em metadados do Windows, mas um struct C++ padrão não pode ser.
declaração de interface classe abstrata que contém apenas funções virtuais puras. interface class identifier {}

interface struct identifier {}
Declara uma interface que tem acessibilidade private padrão.

Declara uma interface que tem acessibilidade public padrão.
Delegar std::function public delegate return-type delegate-type-identifier ([ parâmetros ]); Declara um objeto que pode ser chamado como uma chamada de função.
Evento (Não se aplica) event delegate-type-identifier event-identifier;

delegate-type-identifier delegate-identifier = ref new delegate-type-identifier( this[, parâmetros]);

event-identifier += *delegate-identifier;

-ou-

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

-ou-

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

object.event-identifier -= token-identifier;

-ou-

object.event-identifier::remove( token-identifier );
Declara um objeto event, que armazena uma coleção de manipuladores de eventos (delegados) que são chamados quando ocorre um evento.

Cria um manipulador de eventos.

Adiciona um manipulador de eventos.

A adição de um manipulador de eventos retorna um token de evento (token-identifier). Se você pretende remover explicitamente o manipulador de eventos, deverá salvar o token de evento para uso posterior.

Remove um manipulador de eventos.

Para remover um manipulador de eventos, você deve especificar o token de evento salvo quando o manipulador de eventos foi adicionado.
Propriedade (Não se aplica) property T identifier;

property T identifier[ index ];

property T default[ index ];
Declara que uma função de membro de classe ou objeto é acessada usando a mesma sintaxe usada para acessar um membro de dados ou elemento de matriz indexada.

Declara uma propriedade em uma função de membro de classe ou objeto.

Declara uma propriedade indexada em uma função de membro de objeto.

Declara uma propriedade indexada em uma função de membro de classe.
Tipos parametrizados modelos generic <typename T> interface class identifier {}

generic <typename T > delegate[return-type]delegate-identifier() {}
Declara uma classe com de interface parametrizada.

Declara um delegado parametrizado.
Tipos de valor anuláveis std::optional<T> Platform::IBox <T> Permite que variáveis de tipos escalares e structs value tenham um valor de nullptr.

Confira também

Referência da linguagem C++/CX