CBMC
sharing_map.h File Reference

Sharing map. More...

#include "as_const.h"
#include "irep.h"
#include "sharing_node.h"
#include "threeval.h"
#include <functional>
#include <map>
#include <memory>
#include <optional>
#include <set>
#include <stack>
#include <stdexcept>
#include <string>
#include <tuple>
#include <type_traits>
#include <vector>
+ Include dependency graph for sharing_map.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  sharing_mapt< keyT, valueT, fail_if_equal, hashT, equalT >
 A map implemented as a tree where subtrees can be shared between different maps. More...
 
struct  sharing_mapt< keyT, valueT, fail_if_equal, hashT, equalT >::falset
 
struct  sharing_mapt< keyT, valueT, fail_if_equal, hashT, equalT >::noop_value_comparatort
 
struct  sharing_mapt< keyT, valueT, fail_if_equal, hashT, equalT >::real_value_comparatort
 
class  sharing_mapt< keyT, valueT, fail_if_equal, hashT, equalT >::delta_view_itemt
 
struct  sharing_mapt< keyT, valueT, fail_if_equal, hashT, equalT >::sharing_map_statst
 Stats about sharing between several sharing map instances. More...
 

Macros

#define SM_ASSERT(b)
 
#define SHARING_MAPT(type)
 Macro to abbreviate the out-of-class definitions of methods and static variables of sharing_mapt. More...
 
#define SHARING_MAPTV(return_type, V)
 
#define SHARING_MAPT2(cv_qualifiers, return_type)
 Macro to abbreviate the out-of-class definitions of methods of sharing_mapt with a return type that is defined within the class. More...
 
#define SHARING_MAPT3(template_parameter, cv_qualifiers, return_type)
 Macro to abbreviate the out-of-class definitions of template methods of sharing_mapt with a single template parameter and with a return type that is defined within the class. More...
 
#define SHARING_MAPT4(template_parameter, return_type)
 Macro to abbreviate the out-of-class definitions of template methods of sharing_mapt with a single template parameter. More...
 

Detailed Description

Sharing map.

Definition in file sharing_map.h.

Macro Definition Documentation

◆ SHARING_MAPT

#define SHARING_MAPT (   type)
Value:
template < \
typename keyT, \
typename valueT, \
bool fail_if_equal, \
typename hashT, \
typename equalT> \
A map implemented as a tree where subtrees can be shared between different maps.
Definition: sharing_map.h:190

Macro to abbreviate the out-of-class definitions of methods and static variables of sharing_mapt.

Parameters
typethe return type of the method or the type of the static variable

Definition at line 48 of file sharing_map.h.

◆ SHARING_MAPT2

#define SHARING_MAPT2 (   cv_qualifiers,
  return_type 
)
Value:
template < \
typename keyT, \
typename valueT, \
bool fail_if_equal, \
typename hashT, \
typename equalT> \
cv_qualifiers typename \
sharing_mapt<keyT, valueT, fail_if_equal, hashT, equalT>::return_type \
sharing_mapt<keyT, valueT, fail_if_equal, hashT, equalT>

Macro to abbreviate the out-of-class definitions of methods of sharing_mapt with a return type that is defined within the class.

Parameters
cv_qualifiersthe cv qualifiers of the return type of the method
return_typethe return type of the method defined within sharing_mapt

Definition at line 72 of file sharing_map.h.

◆ SHARING_MAPT3

#define SHARING_MAPT3 (   template_parameter,
  cv_qualifiers,
  return_type 
)
Value:
template < \
typename keyT, \
typename valueT, \
bool fail_if_equal, \
typename hashT, \
typename equalT> \
template <class template_parameter> \
cv_qualifiers typename \
sharing_mapt<keyT, valueT, fail_if_equal, hashT, equalT>::return_type \
sharing_mapt<keyT, valueT, fail_if_equal, hashT, equalT>

Macro to abbreviate the out-of-class definitions of template methods of sharing_mapt with a single template parameter and with a return type that is defined within the class.

Parameters
template_parametername of the template parameter
cv_qualifiersthe cv qualifiers of the return type of the method
return_typethe return type of the method defined within sharing_mapt

Definition at line 90 of file sharing_map.h.

◆ SHARING_MAPT4

#define SHARING_MAPT4 (   template_parameter,
  return_type 
)
Value:
template < \
typename keyT, \
typename valueT, \
bool fail_if_equal, \
typename hashT, \
typename equalT> \
template <class template_parameter> \

Macro to abbreviate the out-of-class definitions of template methods of sharing_mapt with a single template parameter.

Parameters
template_parametername of the template parameter
return_typethe return type of the method

Definition at line 107 of file sharing_map.h.

◆ SHARING_MAPTV

#define SHARING_MAPTV (   return_type,
 
)
Value:
template < \
typename keyT, \
typename valueT, \
bool fail_if_equal, \
typename hashT, \
typename equalT> \
template <class V> \

Definition at line 57 of file sharing_map.h.

◆ SM_ASSERT

#define SM_ASSERT (   b)

Definition at line 39 of file sharing_map.h.