Convenções de nomenclatura C++/WinRT

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

  • O namespace winrt::impl é reservado para C++/WinRT e você não deve usá-lo em seu aplicativo.
  • No namespace do winrt , os nomes que começam com uma letra minúscula pertencem ao C++/WinRT, mas você pode usá-los em seu aplicativo. A documentação destaca os nomes que você pode sobrecarregar ou especializar. Por exemplo, seu aplicativo tem permissão para especializar o modelo de função winrt::is_guid_of .
  • Nos subespaços de nomes do namespace winrt (exceto winrt::impl), os nomes que começam com uma letra maiúscula estão disponíveis para o seu aplicativo.
  • Em todos os namespaces, os nomes que começam com WINRT_IMPL_ são reservados para C++/WinRT e você não deve usá-los em seu aplicativo.
  • Em todos os namespaces, os nomes que começam com WINRT_ (exceto aqueles que começam com WINRT_IMPL_) são reservados para C++/WinRT. Você pode usá-los, e a documentação destaca esses nomes que podem ser definidos pela sua aplicação, como WINRT_LEAN_AND_MEAN.

É comum que as aplicações façam composição de namespace e importem subnamespaces da raiz winrt para a raiz winrt:

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

Portanto, seu aplicativo deve aderir às convenções de nomenclatura acima em sub-namespaces do namespace winrt .

Aqui está um resumo.

Namespace Name Os aplicativos podem definir Os aplicativos podem usar
winrt::impl Any No No
winrt e subespaços de nomes (exceto impl) Começa com letra minúscula No Yes
winrt e subespaços para nome (exceto impl) Começa com letra maiúscula Yes Yes
Any WINRT_IMPL_* No No
Any WINRT_* (exceto WINRT_IMPL_*) Case-by-case Yes