CBMC
|
Base class for tree-like data structures with sharing. More...
#include <irep.h>
Public Types | |
using | dt = tree_nodet< derivedt, named_subtreest, true > |
using | subt = typename dt::subt |
using | named_subt = typename dt::named_subt |
using | tree_implementationt = sharing_treet |
Used to refer to this class from derived classes. More... | |
Public Member Functions | |
sharing_treet (irep_idt _id) | |
sharing_treet (irep_idt _id, named_subt _named_sub, subt _sub) | |
sharing_treet () | |
sharing_treet (const sharing_treet &irep) | |
sharing_treet (sharing_treet &&irep) | |
sharing_treet & | operator= (const sharing_treet &irep) |
sharing_treet & | operator= (sharing_treet &&irep) |
~sharing_treet () | |
const dt & | read () const |
dt & | write () |
Protected Member Functions | |
void | detach () |
Static Protected Member Functions | |
static void | remove_ref (dt *old_data) |
static void | nonrecursive_destructor (dt *old_data) |
Does the same as remove_ref, but using an explicit stack instead of recursion. More... | |
Protected Attributes | |
dt * | data |
Static Protected Attributes | |
static dt | empty_d |
Base class for tree-like data structures with sharing.
using sharing_treet< derivedt, named_subtreest >::dt = tree_nodet<derivedt, named_subtreest, true> |
using sharing_treet< derivedt, named_subtreest >::named_subt = typename dt::named_subt |
using sharing_treet< derivedt, named_subtreest >::subt = typename dt::subt |
using sharing_treet< derivedt, named_subtreest >::tree_implementationt = sharing_treet |
|
inlineexplicit |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
protected |
|
staticprotected |
|
inline |
|
inline |
|
inline |
|
staticprotected |
|
inline |
|
protected |
|
staticprotected |