Share via


Metodo IDebugHostTypeSignature::CompareAgainst (dbgmodel.h)

Il metodo CompareAgainst confronta la firma del tipo con un'altra firma di tipo e restituisce la modalità di confronto delle due firme. Il risultato del confronto restituito è un membro dell'enumerazione SignatureComparison definita come segue:

Non correlato: non esiste alcuna relazione tra le due firme o i tipi confrontati.

Ambiguo : una firma o un tipo confronta in modo ambiguo l'altro. Per due firme di tipo, ciò significa che sono presenti potenziali istanze di tipo che potrebbero corrispondere ugualmente a entrambe le firme. Ad esempio, le due firme di tipo illustrate di seguito sono ambigue:

Firma 1:

std::pair<*, int> 

Firma 2:

std::pair<int, *>

Poiché l'istanza del tipo std::p air<int, int> corrisponde ugualmente a uno (entrambi hanno una corrispondenza concreta e una corrispondenza con caratteri jolly).

LessSpecific : una firma o un tipo è meno specifico dell'altro. Questo significa spesso che la firma meno specifica ha un carattere jolly in cui quello più specifico ha un tipo concreto. Ad esempio, la prima firma seguente è meno specifica del secondo:

Firma 1:

std::pair<*, int> 

Firma 2:

std::pair<int, int> 

Poiché ha un carattere jolly (*) dove il secondo ha un tipo concreto (int).

MoreSpecific : una firma o un tipo è più specifico dell'altro. Questo significa spesso che la firma più specifica ha un tipo concreto in cui quello meno specifico ha un carattere jolly. Ad esempio, la prima firma seguente è più specifica del secondo:

Firma 1:

std::pair<int, int> 

Firma 2:

std::pair<*, int> 

Poiché ha un tipo concreto (int) in cui il secondo ha un carattere jolly (*).

Identico : le due firme o i tipi sono identici.

Sintassi

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

Parametri

typeSignature

Firma del tipo da confrontare.

result

In questo caso viene restituita un'indicazione della relazione tra le due firme, indipendentemente dal fatto che non siano correlate o identiche, una sia più o meno specifica dell'altra o sia ambigua. Tale relazione viene data da un membro dell'enumerazione SignatureComparison.

Valore restituito

Questo metodo restituisce HRESULT che indica l'esito positivo o negativo.

Commenti

Codice di esempio

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
}

Requisiti

Requisito Valore
Intestazione dbgmodel.h

Vedi anche

Interfaccia IDebugHostTypeSignature