Qualcuno sa di una libreria che ti permette di fare qualcosa di simile?Libreria funtore C++ per la valutazione di espressioni matematiche/aritmetiche
std::transform(vecA.begin(), vecA.end(),
vecB.begin(),
vecOutput.begin(),
// run-time specified expression
magic_functor<float>("exp(a/(b+3))")
);
Dove magic_functor è il funtore biblioteca fornita e a e b sono iterati attraverso Veca e vecB.
Potrei inventarmi qualcosa (e mi divertirò molto a farlo), ma probabilmente è meglio evitare di reinventare la ruota (anche il mio capo mi ucciderebbe). Ho trascorso un po 'di tempo a cercare sul Web, ma non riesco davvero a trovare nulla che corrisponda al conto.
Deve essere flessibile e veloce, quindi un approccio di tipo functor che analizzi solo una volta la stringa (ad esempio crea una pila di esecuzione internamente in fase di costruzione) sarebbe l'ideale, ma sono aperto ad altre soluzioni.
Che in realtà sembra una cosa divertente da fare ora che tu me questo – chris
Temo di non poter suggerire alcuna libreria che faccia qualcosa del genere con il tipo di interfaccia binario-functor di cui avresti bisogno; tuttavia immagino che sarebbe abbastanza semplice scrivere espressioni lambda che gestiscono il tuo exp (a/(b + 3)) '. Forse non è la soluzione più sofisticata se hai bisogno di ripeterla in più posizioni, ma per quanto riguarda la leggibilità va mi sembra giusto. –