6 #define LOGIC_ID(the_id, the_name) \
7 const irep_idt ID_smt_logic_##the_id{"smt_logic_" #the_id};
8 #include <solvers/smt2_incremental/smt_logics.def>
18 return !(*
this == other);
21 template <
typename visitort>
24 #define LOGIC_ID(the_id, the_name) \
25 if(id == ID_smt_logic_##the_id) \
26 return visitor.visit(static_cast<const smt_logic_##the_id##t &>(logic));
29 #include <solvers/smt2_incremental/smt_logics.def>
41 ::accept(*
this,
id(), std::move(visitor));
44 #define LOGIC_ID(the_id, the_name) \
45 smt_logic_##the_id##t::smt_logic_##the_id##t() \
46 : smt_logict{ID_smt_logic_##the_id} \
49 #include "smt_logics.def"
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
bool operator==(const irept &other) const
void accept(smt_logic_const_downcast_visitort &) const
bool operator==(const smt_logict &) const
bool operator!=(const smt_logict &) const
void accept(const smt_logict &logic, const irep_idt &id, visitort &&visitor)
#define UNREACHABLE
This should be used to mark dead code.