C++/WinRT-Benennungskonventionen

C++/WinRT hat die folgenden Benennungskonventionen eingerichtet:

  • Der winrt::impl-Namespace ist für C++/WinRT reserviert, und Sie sollten ihn nicht in Ihrer Anwendung verwenden.
  • Im winrt-Namespace gehören Namen, die mit einem Kleinbuchstaben beginnen, zu C++/WinRT, aber Sie können sie in Ihrer Anwendung verwenden. In der Dokumentation sind die Namen aufgeführt, für die Sie Überladung oder Spezialisierung durchführen können. Ihre Anwendung ist beispielsweise berechtigt, die Winrt::is_guid_of-Funktionsvorlage zu spezialisieren.
  • In Unternamespaces des winrt-Namespaces (mit Ausnahme von winrt::impl) stehen Namen, die mit einem Großbuchstaben beginnen, für Ihre Anwendung zur Verfügung.
  • In allen Namespaces sind Namen, die mit WINRT_IMPL_ beginnen, für C++/WinRT reserviert, und Sie sollten sie nicht in Ihrer Anwendung verwenden.
  • In allen Namespaces sind Namen, die mit WINRT_ beginnen (mit Ausnahme derjenigen, die mit WINRT_IMPL_ beginnen) für C++/WinRT reserviert. Sie können sie verwenden, und die Dokumentation ruft diese Namen auf, die von Ihrer Anwendung definiert werden können, z. B. WINRT_LEAN_AND_MEAN.

Es ist üblich, dass Anwendungen eine Namespacekomposition durchführen und Unternamespaces des Stammnamespace winrt in den winrt-Stammnamespace importieren:

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

Daher sollte Ihre Anwendung die oben genannten Benennungskonventionen in Unternamespaces des winrt-Namespaces einhalten.

Hier ist eine Zusammenfassung.

Namespace Name Apps können definieren Apps können verwenden
winrt::impl Any No No
winrt und untergeordnete Namespaces (außer impl) Beginnt mit Kleinbuchstaben No Yes
winrt und untergeordnete Namespaces (mit Ausnahme von impl) Beginnt mit Großbuchstaben Yes Yes
Any WINRT_IMPL_* No No
Any WINRT_* (außer WINRT_IMPL_*) Case-by-case Yes