Hoi allemaal,
Ik ben nieuw hier en ik heb weinig ervaring met C++, het is niet mijn bedoeling om C++ te leren. Ik probeer een interpreter te maken omdat ik dat nodig heb voor een ander project in een andere taal.
Ik vroeg me af hoe ik dus het beste om kon gaan met verschillende datatypes. Ik wil namelijk een systeem maken waarmee variabelen gewijzigd kunnen worden met verschillende types. Ook wil ik het type id kunnen vragen.
Ik dacht er dus aan om een class de maken voor elk type dat de interpreter ondersteunt. Maar het probleem is dat ik dan geen idee heb hoe ik deze verschillende types in een stack/list/array te zetten.
Ik heb dus wat gezocht op internet.
Het union type was geen goede optie omdat dit te traag zou zijn.
Ik zoek een snelle manier om dit te bereiken. Dus kwam ik uit op boost.
Ik heb de classen any en varient van boost geprobeerd. Alleen ik krijg ze niet aan de praat op de manier hoe ik wil, bovendien crasht het nogal vaak zonder een foutmelding te geven dus dan weet ik niet wat ik fout doe.
Dit is de structuur van de functies die ik aan wil maken:
int id = var_create_string()
int id = var_create_double()
int id = var_create_list()
// of misschien beter:
int id = var_create(char type)
char t_string = 1;
char t_double = 2;
char t_list = 3;
var_set(int id, std::string str)
var_set(int id, double num)
var_set(int id, ??)
std::string_str value = var_get(int id)
// En deze natuurlijk ook voor de andere datatypes.
char type = var_type(int id)
var_delete(int id)
Je snapt het idee. Het list type kan nog even overgeslagen worden want ik weet ook niet wat het handigst is voor het C++ type voor de list te gebruiken. In die list moeten dus ook weer var objecten kunnen worden geplaatst.
Ik vraag uiteraard niet voor voorgekauwde code, ik snap dat jullie dat niet willen doen.
Maar mijn vraag is hoe kan ik dit het beste aanpakken en hoe moet ik dat dan precies doen?
Nogmaals ik heb weinig ervaring met C++, ik heb dit nodig voor een ander project.
Ik hoop dat iemand mij hiermee kan helpen!
Alvast bedankt,
Ohlala