共用方式為


IDebugHostTypeSignature::CompareAgainst 方法 (dbgmodel.h)

CompareAgainst 方法會將類型簽章與另一個類型簽章進行比較,並傳回兩個簽章的比較方式。 傳回的比較結果是 SignatureComparison 列舉的成員,其定義如下:

不相關 - 要比較的兩個簽章或類型之間沒有關聯性。

模棱兩 可 - 一個簽章或類型與另一個簽章不明確比較。 針對兩個類型簽章,這表示有可能符合任一個簽章的潛在類型實例。 例如,下面顯示的兩個類型簽章模棱兩可:

簽章 1:

std::pair<*, int> 

簽章 2:

std::pair<int, *>

因為類型實例 std::p air<int,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 介面