Vorrei definire diversi nomi per lo stesso tipo e fare in modo che il compilatore li distingua.
La mia motivazione è che diverse%% di% delle variabili di co_de potrebbero rappresentare unità molto diverse e vorrei che il compilatore rilevasse gli errori nelle unità.
int
non genera alcun avviso, quando si assegna a typedef int Speed
da Speed
. Una possibile soluzione è l'utilizzo di un enum . Inoltre, l'enum "hack" non mi consente di specificare la rappresentazione sottostante, ad es. int
.
È quello che sto cercando di fare una cattiva pratica? Come posso ottenerlo in C ++?
Modifica:
Grim. Ho legato utilizzando uint8_t
.
error: invalid conversion from 'int' to 'Speed' [-fpermissive]
error: no match for 'operator+=' in 'a += b'
Questi sono solo un paio di errori che ho riscontrato. Le enumerazioni non possono essere la strada giusta.
Penserò a enum Speed {};
, e se nel mio caso alcuni membri e operatori predefiniti possono effettivamente rendere il resto del codice più pulito.
Hmm, qui è piuttosto una ricerca, al punto di fare la mia domanda un duplicato.