다음을 통해 공유


IDebugHostTypeSignature::CompareAgainst 메서드(dbgmodel.h)

CompareAgainst 메서드는 형식 서명을 다른 형식 서명과 비교하고 두 서명이 비교하는 방법을 반환합니다. 반환되는 비교 결과는 다음과 같이 정의된 SignatureComparison 열거형의 멤버입니다.

관련이 없음 - 비교되는 두 서명 또는 형식 간에는 관계가 없습니다.

모호함 - 하나의 서명 또는 형식이 다른 서명과 모호하게 비교됩니다. 두 형식 서명의 경우 두 서명이 동일하게 일치할 수 있는 잠재적인 형식 인스턴스가 있음을 의미합니다. 예를 들어 아래에 표시된 두 형식 서명은 모호합니다.

서명 1:

std::pair<*, int> 

서명 2:

std::pair<int, *>

형식이 std::p air<int를 instance 때문에 int>는 하나와 동일하게 일치합니다(둘 다 하나의 콘크리트와 하나의 와일드카드 일치가 있음).

LessSpecific - 하나의 서명 또는 형식이 다른 시그니처보다 덜 구체적입니다. 즉, 덜 구체적인 서명에는 구체적인 형식이 있는 와일드카드가 있는 경우가 많습니다. 예를 들어 아래의 첫 번째 서명은 두 번째 서명보다 덜 구체적입니다.

서명 1:

std::pair<*, int> 

서명 2:

std::pair<int, int> 

두 번째 에 구체적인 형식(int)이 있는 와일드카드(*)가 있기 때문입니다.

MoreSpecific - 하나의 서명 또는 형식이 다른 서명보다 더 구체적입니다. 즉, 보다 구체적인 시그니처에는 덜 구체적인 서명에 와일드카드가 있는 구체적인 형식이 있는 경우가 많습니다. 예를 들어 아래의 첫 번째 서명은 두 번째 서명보다 더 구체적입니다.

서명 1:

std::pair<int, int> 

서명 2:

std::pair<*, int> 

두 번째 에 와일드카드(*)가 있는 구체적인 형식(int)이 있기 때문입니다.

동일 - 두 서명 또는 형식이 동일합니다.

구문

HRESULT CompareAgainst(
  IDebugHostTypeSignature *typeSignature,
  SignatureComparison     *result
);

매개 변수

typeSignature

비교할 형식 서명입니다.

result

두 서명 간의 관계에 대한 표시는 관련이 없거나 동일하거나, 다른 서명보다 더 구체적이거나 덜 구체적이든, 모호하든 간에 여기에 반환됩니다. 이러한 관계는 SignatureComparison 열거형의 멤버가 지정합니다.

반환 값

이 메서드는 성공 또는 실패를 나타내는 HRESULT를 반환합니다.

설명

예제 코드

ComPtr<IDebugHostTypeSignature> spSig1; /* get a type signature */
ComPtr<IDebugHostTypeSignature> spSig2; /* get a second type signature */

SignatureComparison compResult;
if (SUCCEEDED(spSig1->ComapreAgainst(spSig2.Get(), &compResult)))
{
    // compResult indicates how the two signatures are related (if at all)
    //     std::pair<int, *> and std::pair<*, int> would be related ambiguously
    //     std::pair<int, *> would be more specific than std::pair<*, *>
    //     std::pair<int, int> and std::pair<float, float> would be unrelated
}

요구 사항

요구 사항
헤더 dbgmodel.h

추가 정보

IDebugHostTypeSignature 인터페이스