6 #define LOGIC_ID(the_id, the_name) \
7 const irep_idt ID_smt_logic_##the_id{"smt_logic_" #the_id};
8 #include "smt_logics.def"
19 return !(*
this == other);
22 template <
typename visitort>
25 #define LOGIC_ID(the_id, the_name) \
26 if(id == ID_smt_logic_##the_id) \
27 return visitor.visit(static_cast<const smt_logic_##the_id##t &>(logic));
30 #include "smt_logics.def"
42 ::accept(*
this,
id(), std::move(visitor));
45 #define LOGIC_ID(the_id, the_name) \
46 smt_logic_##the_id##t::smt_logic_##the_id##t() \
47 : smt_logict{ID_smt_logic_##the_id} \
50 #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.