Vielleicht ((size_t)-1)
?
Streng genommen ist eine gültige Größe, aber sobald Sie diese haben, brauchen Sie wahrscheinlich keine anderen; -)
Wenn Sie von std :: string sprechen, ist der ungültige Wert von size_t std :: string :: npos. Normalerweise sollten Sie -1 nicht verwenden, da size_t unsigniert ist, und Sie können fehlgeschlagene Vergleiche für einen Compiler erhalten, der implizite Konvertierungen zwischen Typen durchführt.
Dabei wird std :: strings 'npos auf 0XFFFFFFFFFFFFFFFF ... gesetzt, was die binäre Äquivalenz von -1 ist. Es wird auch der maximal zulässige Wert für ein unsigniertes size_t-Feld ausgewertet.
Und was tun Sie, um anzuzeigen, dass ein int
ungültig ist? -1 ist ein gültiger Wert für einen int. Diese Typen haben keine "ungültigen" Werte. Sie können einen bestimmten Wert wählen (der normalerweise niemals der Wert dessen sein kann, was Ihre Variable darstellt), um einen unzulässigen Wert darzustellen, aber das ist Ihre eigene Definition und nicht etwas, was die Leute normalerweise verwenden.
Persönlich mag ich diesen Weg nicht. Ich bevorzuge es, eine andere Variable, bool IsValid
, zu erstellen, die sagt, ob der Wert der Variablen size_t gültig ist. Manchmal ist es sogar besser, eine Klasse zu erstellen, um sie zu kapseln.
Tags und Links c