У меня есть сторонняя библиотека, и я хочу использовать один из предоставленных конструкторов.
ex.h:
/** Construct example from string and a list of symbols. The input grammar is
* similar to the GiNaC output format. All symbols and indices to be used
* in the expression must be specified in a lst in the second argument.
* Undefined symbols and other parser errors will throw an exception. */
ex(const std::string &s, const ex &l);
Я попробовал следующее:
symbol x("x");
ex e("x^2",x);
К сожалению, использование этого конструктора неверно. Я получаю следующее сообщение об ошибке:
libc ++ abi.dylib: завершается с необработанным исключением типа std :: invalid_argument: find_or_insert_symbol: символ «x» не найден
Вся предоставленная документация является комментарием над декларацией. Я новичок в C ++, поэтому понятия не имею, что не так.
Я попробовал предложение в первом ответе как следующее:
symbol x("x");
ex expression;
ex e("x^2",expression);
std::cout << diff(e,x) << std::end
Это приводит к следующему сообщению об ошибке:
libc ++ abi.dylib: завершается с необработанным исключением типа std :: invalid_argument: find_or_insert_symbol: символ «x» не найден
(Lldb)
Заметка: Я пытался с помощью е а также выражение в Diff ().
Вы должны предоставить ex
ссылка, а не symbol
ссылка;
Попробуй это:
ex MyEx1; //This will call to the ex default constructor for MyEx1, if it exist.
ex e("x^2",MyEx1); //This will call to the ex constructor that you want to use for e.
Других решений пока нет …