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_* 제외) 사례별로