Sono installati separatamente.
È chiaramente g++ dato che ogni compilatore ha un suo modo di segnalare gli errori.
Cosa posso fare?
Sono installati separatamente.
È chiaramente g++ dato che ogni compilatore ha un suo modo di segnalare gli errori.
Cosa posso fare?
Ok, ho visto che dà anche a me questo stranissimo problema... che si risolve sistemando gioco operazioni.h (in cui ti sei dimenticato di mettere il punto e virgola alla fine della definizione della classe).
Amaro C++, il gusto pieno dell'undefined behavior.
Bene.
Ma qual'è la funzione per convertire l'espressione da string (o char *) a int/double?
Parser::Parse; il risultato viene fornito nella variabile del parser "Ans" (che puoi ottenere con la Parser::eval_variable).
(... oregon, senza offesa, ma l'interfaccia a questo parser mi pare un po' bizzarra...)
Amaro C++, il gusto pieno dell'undefined behavior.
Ho preso il primo risultato di google ...Originariamente inviato da MItaly
(... oregon, senza offesa, ma l'interfaccia a questo parser mi pare un po' bizzarra...![]()
No MP tecnici (non rispondo nemmeno!), usa il forum.
Scusami, ma sia Parser::ans che Parser::eval_variable sono private, come faccio ad accedervi?
Penso che il risultato sia il valore di ritorno di questi metodi
double eval_operator(const int op_id, const double &lhs, const double &rhs);
double eval_function(const char fn_name[], const double &value);
double eval_variable(const char var_name[]);
Forse, ma sono tutti private.
huh?!? Parser:arse() ritorna il risultato come una stringa...
Potresti modificare Parser:arse(const char new_expr[])
per far ritornare direttamente la variabile ans
Potrei anche mettere public anziché private.![]()
Però rovinerei la classe ed il lavoro dell'autore.
O forse sono io che sbaglio qualcosa; spero che qualcuno mi contraddica.