Convenzioni di denominazione C++/WinRT

C++/WinRT ha stabilito le convenzioni di denominazione seguenti:

  • Lo spazio dei nomi winrt::impl è riservato per C++/WinRT e non è consigliabile usarlo nell'applicazione.
  • Nello spazio dei nomi winrt i nomi che iniziano con una lettera minuscola appartengono a C++/WinRT, ma è possibile usarli nell'applicazione. La documentazione indica quei nomi che è possibile sottoporre a overload o specializzare. Ad esempio, l'applicazione è autorizzata a specializzare il modello di funzione winrt::is_guid_of .
  • Negli spazi dei nomi secondari dello spazio dei nomi winrt (ad eccezione di winrt::impl), i nomi che iniziano con una lettera maiuscola sono disponibili per l'applicazione.
  • In tutti gli spazi dei nomi i nomi che iniziano con WINRT_IMPL_ sono riservati per C++/WinRT e non devono essere usati nell'applicazione.
  • In tutti gli spazi dei nomi, i nomi che iniziano con WINRT_ (tranne quelli che iniziano con WINRT_IMPL_) sono riservati per C++/WinRT. È possibile usarli e la documentazione chiama i nomi che possono essere definiti dall'applicazione, ad esempio WINRT_LEAN_AND_MEAN.

È comune che le applicazioni eseguano la composizione degli spazi dei nomi e importino i sotto-spazi dei nomi dello spazio dei nomi radice winrt nello spazio dei nomi radice winrt:

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

Pertanto, l'applicazione deve rispettare le convenzioni di denominazione indicate sopra nei sottospazi dei nomi di winrt.

Ecco un riepilogo.

Namespace Name Le app possono definire Le app possono usare
winrt::impl Qualunque No No
winrt e i relativi sottospazi dei nomi (ad eccezione di impl) Inizia con una lettera minuscola No Yes
namespace winrt e sottospazi dei nomi (tranne impl) Inizia con una lettera maiuscola Yes Yes
Qualunque WINRT_IMPL_* No No
Qualunque WINRT_* (ad eccezione di WINRT_IMPL_*) Caso per caso Yes