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

下面是摘要。

命名空间 Name 应用可以定义 应用可以使用
winrt::impl 任意 No No
winrt 和子命名空间( impl 除外) 以小写字母开头 No Yes
winrt 和子命名空间( impl 除外) 以大写字母开头 Yes Yes
任意 WINRT_IMPL_* No No
任意 WINRT_* (WINRT_IMPL_ *除外) Case-by-case Yes