Convenciones de nomenclatura de C++/WinRT

C++/WinRT ha establecido las siguientes convenciones de nomenclatura:

  • El espacio de nombres winrt::impl está reservado para C++/WinRT y no debe usarlo en la aplicación.
  • En el espacio de nombres winrt , los nombres que comienzan con una letra minúscula pertenecen a C++/WinRT, pero puede usarlos en la aplicación. La documentación indica qué nombres puede sobrecargar o especializar. Por ejemplo, se le permite a su aplicación especializar la plantilla de función winrt::is_guid_of.
  • En los espacios de nombres secundarios del espacio de nombres winrt (excepto winrt::impl), los nombres que comienzan por una letra mayúscula están disponibles para la aplicación.
  • En todos los espacios de nombres, los nombres que comienzan por WINRT_IMPL_ están reservados para C++/WinRT y no debe usarlos en la aplicación.
  • En todos los espacios de nombres, los nombres que comienzan por WINRT_ (excepto los que comienzan por WINRT_IMPL_) están reservados para C++/WinRT. Puede usarlos, y la documentación menciona los nombres que puede definir su aplicación, como WINRT_LEAN_AND_MEAN.

Es habitual que las aplicaciones compongan espacios de nombres e importen subespacios de nombres del espacio de nombres raíz winrt al espacio de nombres raíz winrt:

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

Por lo tanto, la aplicación debe cumplir las convenciones de nomenclatura anteriores en los espacios de nombres secundarios del espacio de nombres winrt .

Este es un resumen.

Namespace Name Las aplicaciones pueden definir Las aplicaciones pueden usar
winrt::impl Any No No
winrt y sub-namespaces (excepto impl) Comienza con letra minúscula No Yes
winrt y sub-namespaces (excepto impl) Comienza con letra mayúscula Yes Yes
Any WINRT_IMPL_* No No
Any WINRT_* (excepto WINRT_IMPL_*) Case-by-case Yes