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 命名空间的子命名空间中遵循以上命名约定。

摘要如下。

命名空间 名称 应用可以定义 应用可以使用
winrt::impl 任意
winrt 和子命名空间(impl 除外) 以小写字母开头
winrt 和子命名空间(impl 除外) 以大写字母开头
任意 WINRT_IMPL_*
任意 WINRT_*(WINRT_IMPL_*除外) 根据具体情况