Func::Func(const Func& rhs): _mode(rhs._mode) { _varbuf.reserve(VARMAX); _parser.SetVarFactory(_addVar, this); // Adding pi and e, the defaults are `_pi` and `_e` _parser.DefineConst(_T("pi"), (mu::value_type)M_PI); _parser.DefineConst(_T("e"), (mu::value_type)M_E); setExpr(rhs.getExpr()); vector <string> vars = rhs.getVars(); for (unsigned int ii = 0; ii < vars.size(); ++ii){ setVar(vars[ii], rhs.getVar(vars[ii])); } }