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);
21template <
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>
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"
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
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.