Каков наилучший способ оценить математические выражения в C ++? - PullRequest
31 голосов
/ 25 февраля 2011

Каков наилучший способ оценки любого пользовательского математического выражения, например

3+sqrt(5)+pow(3)+log(5)

Я знаю, что встраивание Python в C ++ может сделать это; есть ли лучший способ?

Спасибо!

Ответы [ 11 ]

0 голосов
/ 25 февраля 2011

Отформатируйте строку следующим образом:

#include <boost/lexical_cast.hpp>
#include <string>
#include <math.h>

extern "C" {
std::string evaluate() { return boost::lexical_cast<std::string>(3+sqrt(5)+pow(3)+log(5)); }
}

Вызовите компилятор C ++, чтобы скомпилировать приведенный выше код в общую библиотеку. Затем загрузите эту общую библиотеку, определите адрес evaluate, вызовите ее и получите результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...