Condividi tramite


Metodo IDebugHostTypeSignature::CompareAgainst (dbgmodel.h)

Il metodo CompareAgainst confronta la firma del tipo con un'altra firma di tipo e restituisce il confronto tra le 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 esistono potenziali istanze di tipo che potrebbero corrispondere a entrambe le firme altrettanto bene. 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 in modo uniforme (entrambi hanno una corrispondenza concreta e una corrispondenza con caratteri jolly).

lessSpecific: una firma o un tipo è meno specifico dell'altro. Spesso, ciò significa 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 (*) in cui il secondo ha un tipo concreto (int).

MoreSpecific: una firma o un tipo è più specifico dell'altro. Spesso, ciò significa 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 (*).

identici: 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: se non sono correlate o identiche, una è più o meno specifica dell'altra o è ambigua. Tale relazione viene data da un membro dell'enumerazione SignatureComparison.

Valore restituito

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

Osservazioni

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
}

Fabbisogno

Requisito Valore
intestazione dbgmodel.h

Vedere anche

'interfaccia IDebugHostTypeSignature