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 |