Kann ein einfaches Zeichen möglicherweise Trap-Werte haben?

Liesmich

A "Trap-Wert", oder"Falle Darstellung" für TypTist eine Bitkombination (des zugrunde liegenden Speichers), die einen ungültigen Wert von ergibtT. Der Versuch, die Darstellung eines ungültigen Werts zu interpretieren, führt zuundefiniertes Verhalten.

Lasst den Kampf beginnen..

Ein weitererFrage hat eine hitzige Diskussion überchar, und die Möglichkeit einer Implementierung mitFalle Darstellungen dafür.

Frage:

Kannchar Möglicherweise haben Trap-Werte?Zitate, die in der vorherigen Diskussion erwähnt wurden:

Diese Abschnitte wurden in der vorangegangenen Argumentation am häufigsten zitiert. Widersprechen sie sich?

3.9.1p1 Grundtypen [basic.fundamental]

Es ist implementierungsspezifisch, ob achar kann negative Werte enthalten. Zeichen können explizit deklariert werdensigned oderunsigned.

A char, a signed char, und einunsigned char den gleichen Speicherplatz belegen und die gleichen Ausrichtungsanforderungen haben (3.11); das heißt, sie haben die gleiche Objektdarstellung. Bei Zeichentypen sind alle Bits der Objektdarstellung an der Wertdarstellung beteiligt.

Bei vorzeichenlosen Zeichentypen stehen alle möglichen Bitmuster der Wertedarstellung für Zahlen. Diese Anforderungen gelten nicht für andere Typen.

In einer bestimmten Implementierung eine Ebenechar object kann die gleichen Werte annehmen wie asigned char oder einunsigned char; welches ist implementierungsdefiniert.

3,9p2Typen [basic.types]

Für jedes Objekt (außer einem Basisklassen-Unterobjekt) von trivial kopierbarem TypT, Gibt an, ob das Objekt einen gültigen Wert vom Typ enthältTkönnen die zugrunde liegenden Bytes (1.7), aus denen das Objekt besteht, in ein Array von kopiert werdenchar oderunsigned char.

Wenn der Inhalt des Arrays vonchar oderunsigned char zurück in das Objekt kopiert wird, behält das Objekt anschließend seinen ursprünglichen Wert.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage