12 #ifndef CPROVER_CPP_CPP_DECLARATION_H 13 #define CPROVER_CPP_CPP_DECLARATION_H 39 return type().
id()==ID_constructor;
44 return get_bool(ID_is_static_assert);
49 return type().
id()==ID_destructor;
76 return static_cast<const cpp_storage_spect &>(
77 find(ID_storage_spec));
82 return static_cast<cpp_storage_spect &>(
83 add(ID_storage_spec));
88 return static_cast<const cpp_member_spect &>(
89 find(ID_member_spec));
94 return static_cast<cpp_member_spect &>(
100 return static_cast<template_typet &>(
add(ID_template_type));
105 return static_cast<const template_typet &>(
find(ID_template_type));
110 return static_cast<cpp_template_args_non_tct &>(
111 add(ID_partial_specialization_args));
116 return static_cast<const cpp_template_args_non_tct &>(
117 find(ID_partial_specialization_args));
122 set(ID_specialization_of,
id);
127 return get(ID_specialization_of);
132 set(ID_is_typedef,
true);
140 void output(std::ostream &out)
const;
150 assert(irep.
id()==ID_cpp_declaration);
151 return static_cast<cpp_declarationt &>(irep);
156 assert(irep.
id()==ID_cpp_declaration);
157 return static_cast<const cpp_declarationt &>(irep);
160 #endif // CPROVER_CPP_CPP_DECLARATION_H
The type of an expression, extends irept.
const cpp_storage_spect & storage_spec() const
bool is_destructor() const
void name_anon_struct_union()
irep_idt get_specialization_of() const
cpp_template_args_non_tct & partial_specialization_args()
typet & type()
Return the type of the expression.
bool get_bool(const irep_namet &name) const
C++ Language Type Checking.
const cpp_member_spect & member_spec() const
bool is_class_template() const
const template_typet & template_type() const
const irep_idt & id() const
cpp_member_spect & member_spec()
const declaratorst & declarators() const
const irep_idt & get(const irep_namet &name) const
void set_specialization_of(const irep_idt &id)
Base class for tree-like data structures with sharing.
declaratorst & declarators()
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
bool is_constructor() const
C++ Language Type Checking.
bool has_operands() const
Return true if there is at least one operand.
cpp_declarationt & to_cpp_declaration(irept &irep)
Base class for all expressions.
bool is_static_assert() const
irept & add(const irep_namet &name)
template_typet & template_type()
std::vector< cpp_declaratort > declaratorst
const irept & find(const irep_namet &name) const
const cpp_template_args_non_tct & partial_specialization_args() const
void output(std::ostream &out) const
void set(const irep_namet &name, const irep_idt &value)
cpp_storage_spect & storage_spec()