Convenções de nomenclatura C++/WinRT

O C++/WinRT estabeleceu as seguintes convenções de nomenclatura:

  • O espaço de nomes winrt::impl é reservado para C++/WinRT e não o deve utilizar na sua aplicação.
  • No namespace winrt , nomes que começam por letra minúscula pertencem a C++/WinRT, mas podes usá-los na tua aplicação. A documentação aponta os nomes que podes sobrecarregar ou especializar. Por exemplo, a sua aplicação tem permissão para especializar o modelo de função winrt::is_guid_of.
  • Nos subespaços de nomes do espaço de nomes winrt (exceto winrt::impl), os nomes que começam por uma letra maiúscula estão disponíveis para a sua aplicação.
  • Em todos os namespaces, nomes que começam por WINRT_IMPL_ são reservados para C++/WinRT, e não deve usá-los na sua aplicação.
  • Em todos os espaços de nomes, nomes que começam por WINRT_ (exceto os que começam por WINRT_IMPL_) são reservados para C++/WinRT. Pode utilizá-los, e a documentação menciona especificamente esses nomes que podem ser definidos pela sua aplicação, como WINRT_LEAN_AND_MEAN.

É comum que as aplicações façam a composição de espaços de nomes e importem subespaços de nomes do espaço de nomes raiz winrt para o espaço de nomes raiz winrt:

namespace winrt
{
    using namespace winrt::Windows::Foundation;
}

Portanto, a sua aplicação deve seguir as convenções de nomenclatura acima nos sub-namespaces do namespace winrt .

Aqui está um resumo.

Namespace Name As aplicações podem definir As aplicações podem utilizar
winrt::impl Any No No
winrt e subespaços de nomes (exceto impl) Começa por letra minúscula No Yes
winrt e subespaços de nomes (exceto impl) Começa por letra maiúscula Yes Yes
Any WINRT_IMPL_* No No
Any WINRT_* (exceto WINRT_IMPL_*) Caso a caso Yes