Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 |