¿Alguien sabe de una biblioteca que le permite hacer algo como esto?Biblioteca funcionadora C++ para evaluar expresiones matemáticas/aritméticas
std::transform(vecA.begin(), vecA.end(),
vecB.begin(),
vecOutput.begin(),
// run-time specified expression
magic_functor<float>("exp(a/(b+3))")
);
Dónde magic_functor es el funtor biblioteca proporcionada y a y b se iteran a través de Veca y vecB.
Podría hacer algo por mi cuenta (y me divertiría mucho haciéndolo), pero probablemente sea mejor evitar reinventar la rueda (también mi jefe me mataría). Pasó algún tiempo buscando en la web, pero realmente no puede encontrar nada que encaje con la factura.
Tiene que ser flexible y rápido, por lo que un enfoque functor que solo analiza la cadena una vez (por ejemplo, crea una pila de ejecución internamente en la construcción) sería ideal, pero estoy abierto a otras soluciones.
que en realidad parece como una cosa divertida de hacer ahora que me nción. – chris
Me temo que no puedo sugerir ninguna biblioteca que haga algo así con el tipo de interfaz de binary-functor que necesitaría; sin embargo, me imagino que sería bastante simple escribir expresiones lambda que manejen su 'exp (a/(b + 3))'. Posiblemente no sea la solución más sofisticada si necesita repetirla en varias ubicaciones, pero en lo que respecta a la legibilidad, me parece bien. –