Ho una query, ho set di file flat (ad esempio file1, file2 ecc.) Contenenti nomi di colonne e tipi di dati nativi. (come i valori sono memorizzati e possono essere letti in C++ è elementare) es. flat file file1 può avere dati come col1_name = id, col1_type = intero, col2_name = Nome, col2_type = stringa e così via.C++, creazione di classi in runtime
Quindi per ogni file flat ho bisogno di creare una struttura dati C++ (cioè 1 file flat = 1 struttura dati) dove il nome della variabile membro è lo stesso nome della colonna e il suo tipo di dati sarà di tipo nativo C++ come int , float, stringa, ecc. in base al tipo di colonna nel file flat. dall'alto ad esempio: il mio file flat 1 mi dovrebbe dare seguito dichiarazione
class file1{
int id;
string Name;
};
C'è un modo per scrivere codice in C++, dove binario una volta creato leggerà il file flat e creare la struttura di dati in base al file (il nome della classe sarà uguale al nome file flat). Tutte le classi create utilizzando questi file flat avranno funzionalità comuni delle funzioni dei membri getter e setter.
Fammi sapere se hai fatto qualcosa di simile prima o hai qualche idea per questo.
Non possibile, mi spiace. Dovrai invece utilizzare qualcosa come una mappa di stringhe (nomi di proprietà) a un tipo di dati variante. – Jon
Non è possibile creare definizioni di classi in runtime in C++, è possibile utilizzare un linguaggio di scripting o anche C++ per leggere tali file flat e sputare i file sorgente e compilarli in seguito. –
Non ho mai usato ['boost :: any'] (http://www.boost.org/doc/libs/1_48_0/doc/html/any.html). Questo aiuterà a risolvere il problema di @ rocky? –