Flex is een eenvoudige library voor C++ waarmee je in een handomdraai een data structuur opzet. De standaard data types worden ondersteund en deze kunnen netjes worden geordend in Objecten met sleutels en Array's
In het onderstaande is wordt er in programma code een data structuur opgezet.
#include <flex/flex.h>
int main(){
Flex::Var var obj = new Flex::Object;
obj["name"] = "John Doe";
obj["age"] = 36;
Database::add("person", obj);
}
Voor het uitlezen zijn er eenvoudige functies om bij het juiste type te komen.
void Database::add(const char * type, Flex::Var data){
.....
char * name = data["name"].toString(); // pointer needs to be released
Person person = connection->addPerson(name, data["age"].ToInt());
// Releasing name not needed any more
delete[] name;
for(int i=0; i<data["jobs"].Length(); i++){
Flex::Ref job = data["jobs"][i]; // Using Ref instead of Var otherwise it would clone the whole structuur
char * jobname = job["name"].ToString();
.....
}
....
}
De headers staan in de map flex en de static lib in de root. Er wordt bij de code verwacht dat de headers in de map flex.