C++/WinRT 命名慣例

C++/WinRT 已建立下列命名慣例:

  • winrt::impl 命名空間會保留給 C++/WinRT 使用,您不得在應用程式中使用它。
  • winrt 命名空間中,以小寫字母開頭的名稱屬於 C++/WinRT,但您可以在您的應用程式中使用這些名稱。 此文件會標註您可以多載或特殊化的名稱。 例如,您的應用程式可以將 winrt::is_guid_of 函式範本特殊化。
  • winrt 命名空間的子命名空間 (winrt::impl 除外) 中,您的應用程式可使用以大寫字母開頭的名稱。
  • 在所有命名空間中,以 WINRT_IMPL_ 開頭的名稱會保留給 C++/WinRT 使用,您不得在應用程式中使用這類名稱。
  • 在所有命名空間中,以 WINRT_ 開頭的名稱 (但以 WINRT_IMPL_ 開頭的名稱除外) 會保留給 C++/WinRT 使用。 您可以使用這類名稱,而文件會標註應用程式可能定義的名稱,例如 WINRT_LEAN_AND_MEAN

應用程式通常會執行命名空間組合,並將 winrt 根命名空間的子命名空間匯入 winrt 根命名空間中:

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

因此,您的應用程式應該在 winrt 命名空間的子命名空間中遵循上述命名慣例。

摘要如下。

Namespace 名稱 應用程式可以定義 應用程式可以使用
winrt::impl 任何 No No
winrt 和 sub-namespaces (impl 除外) 以小寫字母開頭 No Yes
winrt 和 sub-namespaces (impl 除外) 以大寫字母開頭 Yes Yes
任何 WINRT_IMPL_* No No
任何 WINRT_* (WINRT_IMPL_* 除外) 視情況而定 Yes