CBMC
Loading...
Searching...
No Matches
sharing_treet< derivedt, named_subtreest > Class Template Reference

Base class for tree-like data structures with sharing. More...

#include <irep.h>

+ Inheritance diagram for sharing_treet< derivedt, named_subtreest >:
+ Collaboration diagram for sharing_treet< derivedt, named_subtreest >:

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.
 

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_treetoperator= (const sharing_treet &irep)
 
sharing_treetoperator= (sharing_treet &&irep)
 
 ~sharing_treet ()
 
const dtread () const
 
dtwrite ()
 

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.
 

Protected Attributes

dtdata
 

Static Protected Attributes

static dt empty_d
 

Detailed Description

template<typename derivedt, typename named_subtreest>
class sharing_treet< derivedt, named_subtreest >

Base class for tree-like data structures with sharing.

Definition at line 148 of file irep.h.

Member Typedef Documentation

◆ dt

◆ named_subt

◆ subt

◆ tree_implementationt

Used to refer to this class from derived classes.

Definition at line 156 of file irep.h.

Constructor & Destructor Documentation

◆ sharing_treet() [1/5]

Definition at line 158 of file irep.h.

◆ sharing_treet() [2/5]

Definition at line 162 of file irep.h.

◆ sharing_treet() [3/5]

Definition at line 168 of file irep.h.

◆ sharing_treet() [4/5]

◆ sharing_treet() [5/5]

◆ ~sharing_treet()

Definition at line 226 of file irep.h.

Member Function Documentation

◆ detach()

Definition at line 510 of file irep.h.

◆ nonrecursive_destructor()

void sharing_treet< derivedt, named_subtreest >::nonrecursive_destructor ( dt old_data)
staticprotected

Does the same as remove_ref, but using an explicit stack instead of recursion.

Definition at line 583 of file irep.h.

◆ operator=() [1/2]

◆ operator=() [2/2]

◆ read()

Definition at line 240 of file irep.h.

◆ remove_ref()

void sharing_treet< derivedt, named_subtreest >::remove_ref ( dt old_data)
staticprotected

Definition at line 545 of file irep.h.

◆ write()

Definition at line 245 of file irep.h.

Member Data Documentation

◆ data

Definition at line 232 of file irep.h.

◆ empty_d

Definition at line 233 of file irep.h.


The documentation for this class was generated from the following file: