3 #ifndef CPROVER_SOLVERS_SMT2_INCREMENTAL_SMT_OPTIONS_H
4 #define CPROVER_SOLVERS_SMT2_INCREMENTAL_SMT_OPTIONS_H
30 template <
typename derivedt>
43 template <
typename derivedt>
47 std::is_base_of<irept, derivedt>::value &&
49 "Only irept based classes need to upcast smt_termt to store it.");
52 template <
typename derivedt>
55 return static_cast<irept &&
>(std::move(option));
58 template <
typename derivedt>
74 #define OPTION_ID(the_id) \
75 virtual void visit(const smt_option_##the_id##t &) = 0;
76 #include "smt_options.def"
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
There are a large number of kinds of tree structured or tree-like data in CPROVER.
std::string pretty(unsigned indent=0, unsigned max_indent=0) const
smt_option_produce_modelst(bool setting)
Class for adding the ability to up and down cast smt_optiont to and from irept.
static const smt_optiont & downcast(const irept &)
static irept upcast(smt_optiont option)
void accept(smt_option_const_downcast_visitort &) const
bool operator==(const smt_optiont &) const
bool operator!=(const smt_optiont &) const