Non si capisce il problema, o meglio: se si intende che Alpha Numeric e Alphanumeric sono i tre tipi di dato che può contenere la CircularList sicuramente quella riga di codice è sbagliata.
Non si capisce il problema, o meglio: se si intende che Alpha Numeric e Alphanumeric sono i tre tipi di dato che può contenere la CircularList sicuramente quella riga di codice è sbagliata.
"Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares
Cicli sulla stringa data in input e verifichi che nessun carattere sia "proibito"; naturalmente questo non garantisce niente in sé - una stringa del tipo "........." passerebbe un controllo del generedsenza per questo essere un numero valido.
A mio avviso la soluzione più semplice è usare per la conversione strtod/strtol, che tramite l'ultimo parametro ti consentono di sapere qual è stato il carattere a cui si sono fermate per la conversione. Se questo non è un NUL (ovvero, se si sono fermate prima della fine della stringa) allora significa che la stringa conteneva caratteri non validi. (a questo bisogna aggiungere una verifica che la stringa non abbia lunghezza zero)
Amaro C++, il gusto pieno dell'undefined behavior.