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 |