Here it is.
#include "someClass.h"
#include <QString>
#include <muParser.h>
double someClass::MyFunction(double a_fVal)
{
return a_fVal*a_fVal;
}
double someClass::eval()
{
using namespace mu;
try
{
double fVal = 1;
Parser p;
p.DefineVar("a", &fVal);
p.DefineFun(_T("MyFunc"), MyFunction, false);
p.SetExpr("MyFunc(a)*_pi+min(10,a)");
return p.Eval();
}
catch (Parser::exception_type &e)
{
qDebug() << "Error!";
//std::cout << e.GetMsg() << endl;
}
return 0;
}
#include "someClass.h"
#include <QString>
#include <muParser.h>
double someClass::MyFunction(double a_fVal)
{
return a_fVal*a_fVal;
}
double someClass::eval()
{
using namespace mu;
try
{
double fVal = 1;
Parser p;
p.DefineVar("a", &fVal);
p.DefineFun(_T("MyFunc"), MyFunction, false);
p.SetExpr("MyFunc(a)*_pi+min(10,a)");
return p.Eval();
}
catch (Parser::exception_type &e)
{
qDebug() << "Error!";
//std::cout << e.GetMsg() << endl;
}
return 0;
}
To copy to clipboard, switch view to plain text mode
When i'm trying to compile i get this:
"no matching function for call to `mu::Parser::DefineFun(const char[7], <unknown type>, bool)'"
This is a little example on http://muparser.sourceforge.net/mup_...html#idExample :
#include "muParser.h"
// Function callback
double MyFunction(double a_fVal)
{
return a_fVal*a_fVal;
}
// main program
int main(int argc, char* argv[])
{
using namespace mu;
try
{
double fVal = 1;
Parser p;
p.DefineVar("a", &fVal);
p.DefineFun("MyFunc", MyFunction);
p.SetExpr("MyFunc(a)*_pi+min(10,a)");
std::cout << p.Eval() << endl;
}
catch (Parser::exception_type &e)
{
std::cout << e.GetMsg() << endl;
}
return 0;
}
#include "muParser.h"
// Function callback
double MyFunction(double a_fVal)
{
return a_fVal*a_fVal;
}
// main program
int main(int argc, char* argv[])
{
using namespace mu;
try
{
double fVal = 1;
Parser p;
p.DefineVar("a", &fVal);
p.DefineFun("MyFunc", MyFunction);
p.SetExpr("MyFunc(a)*_pi+min(10,a)");
std::cout << p.Eval() << endl;
}
catch (Parser::exception_type &e)
{
std::cout << e.GetMsg() << endl;
}
return 0;
}
To copy to clipboard, switch view to plain text mode
As you can see, they are equal.
Bookmarks