10 #ifndef CPROVER_SOLVERS_FLATTENING_BOOLBV_WIDTH_H
11 #define CPROVER_SOLVERS_FLATTENING_BOOLBV_WIDTH_H
28 return entry_opt->total_width;
34 if(!entry_opt.has_value())
36 return entry_opt->total_width;
59 using entryt = std::optional<defined_entryt>;
61 typedef std::unordered_map<typet, entryt, irep_hash>
cachet;
virtual std::optional< std::size_t > get_width_opt(const typet &type) const
boolbv_widtht(const namespacet &_ns)
const entryt & get_entry(const typet &type) const
std::optional< defined_entryt > entryt
virtual std::size_t operator()(const typet &type) const
std::unordered_map< typet, entryt, irep_hash > cachet
virtual ~boolbv_widtht()=default
const membert & get_member(const struct_typet &type, const irep_idt &member) const
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Structure type, corresponds to C style structs.
The type of an expression, extends irept.
#define CHECK_RETURN(CONDITION)
std::vector< membert > members
defined_entryt(std::size_t total_width)
Defines typet, type_with_subtypet and type_with_subtypest.