/* Solver */
/* -------------------------------------------------------------------------- */
-Solver::Solver(Options* opts) : d_opts(new Options())
+Solver::Solver(Options* opts)
{
- if (opts) d_opts->copyValues(*opts);
- d_exprMgr = std::unique_ptr<ExprManager>(new ExprManager(*d_opts));
+ d_exprMgr = std::unique_ptr<ExprManager>(
+ opts == nullptr ? new ExprManager(Options()) : new ExprManager(*opts));
d_smtEngine = std::unique_ptr<SmtEngine>(new SmtEngine(d_exprMgr.get()));
- d_rng = std::unique_ptr<Random>(new Random((*d_opts)[options::seed]));
+ d_rng = std::unique_ptr<Random>(new Random((*opts)[options::seed]));
}
Solver::~Solver() {}
/* Helper to convert a vector of sorts to internal types. */
std::vector<Expr> termVectorToExprs(const std::vector<Term>& vector) const;
- /* The options of this solver. */
- std::unique_ptr<Options> d_opts;
/* The expression manager of this solver. */
std::unique_ptr<ExprManager> d_exprMgr;
/* The SMT engine of this solver. */