So che gli standard C e C ++ lasciano molti aspetti dell'implementazione del linguaggio definiti solo perché se esiste un'architettura con altre caratteristiche, sarebbe molto difficile o impossibile scrivere un compilatore conforme allo standard.
So che 40 anni fa ogni computer aveva le sue specifiche uniche. Tuttavia, non conosco alcuna architettura utilizzata oggi dove:
CHAR_BIT != 8
signed
non è un complemento a due (ho sentito che Java ha avuto problemi con questo).- Il virgola mobile non è conforme a IEEE 754 (Modifica: intendevo "non nella codifica binaria IEEE 754").
Il motivo per cui lo sto chiedendo è che spesso spiego alle persone che è positivo che il C ++ non imponga altri aspetti di basso livello come i tipi di dimensioni fisse † . È buono perché, a differenza di "altre lingue", rende il codice portatile se usato correttamente (Modifica: perché può essere portato su più architetture senza richiedere l'emulazione di aspetti di basso livello della macchina, come ad esempio l'aritmetica del complemento a due sul segno + architettura magnitudo) . Ma mi sento male per il fatto che non posso indicare nessuna specifica architettura da solo.
Quindi la domanda è: quali architetture presentano le proprietà sopra?
† uint*_t
s sono opzionali.