Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die CompareAgainst-Methode vergleicht die Typsignatur mit einer anderen Typsignatur und gibt zurück, wie die beiden Signaturen verglichen werden. Das zurückgegebene Vergleichsergebnis ist ein Element der SignatureComparison-Aufzählung, die wie folgt definiert ist:
Nicht verknüpfte – Es gibt keine Beziehung zwischen den beiden Signaturen oder Typen, die verglichen werden.
mehrdeutige - Eine Signatur oder ein Typ vergleicht mehrdeutig mit dem anderen. Bei zwei Typsignaturen bedeutet dies, dass es potenzielle Typinstanzen gibt, die beide Signaturen gleichermaßen gut abgleichen können. Als Beispiel sind die beiden unten gezeigten Typensignaturen mehrdeutig:
Signatur 1:
std::pair<*, int>
Signatur 2:
std::pair<int, *>
Da die Typinstanz "std::p air<int" gleicht, entspricht int> einer der Beiden gleichermaßen (beide weisen eine konkrete und eine Wildcard-Übereinstimmung auf).
LessSpecific - Eine Signatur oder ein Typ ist weniger spezifisch als die andere. Dies bedeutet häufig, dass die weniger spezifische Signatur über einen Wildcard verfügt, bei dem der spezifischere Typ einen konkreten Typ aufweist. Die folgende erste Signatur ist beispielsweise weniger spezifisch als die zweite:
Signatur 1:
std::pair<*, int>
Signatur 2:
std::pair<int, int>
Da es einen Platzhalter (das *) hat, wobei die zweite einen konkreten Typ (int) aufweist.
MoreSpecific - Eine Signatur oder ein Typ ist spezifischer als die andere. Dies bedeutet häufig, dass die spezifischere Signatur einen konkreten Typ aufweist, bei dem die weniger spezifische Signatur einen Wildcard hat. Als Beispiel ist die folgende erste Signatur spezifischer als die zweite:
Signatur 1:
std::pair<int, int>
Signatur 2:
std::pair<*, int>
Da es einen konkreten Typ (int) hat, wobei die zweite einen Platzhalter (das *) hat.
Identische - Die beiden Signaturen oder Typen sind identisch.
Syntax
HRESULT CompareAgainst(
IDebugHostTypeSignature *typeSignature,
SignatureComparison *result
);
Parameter
typeSignature
Die Typsignatur, mit der verglichen werden soll.
result
Ein Hinweis auf die Beziehung zwischen den beiden Signaturen wird hier zurückgegeben – unabhängig davon, ob sie nicht miteinander verknüpft oder identisch sind, eine ist mehr oder weniger spezifisch als die andere, oder sie sind mehrdeutig. Diese Beziehung wird von einem Mitglied der SignatureComparison-Aufzählung gegeben.
Rückgabewert
Diese Methode gibt HRESULT zurück, das Erfolg oder Fehler angibt.
Bemerkungen
Beispielcode-
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
}
Anforderungen
| Anforderung | Wert |
|---|---|
| Header- | dbgmodel.h |