cprover
generic_parameter_specialization_map_keyst Class Reference

#include <generic_parameter_specialization_map_keys.h>

+ Collaboration diagram for generic_parameter_specialization_map_keyst:

Public Member Functions

 generic_parameter_specialization_map_keyst (generic_parameter_specialization_mapt &_generic_parameter_specialization_map)
 Initialize a generic-parameter-specialization-map entry owner operating on a given map. More...
 
 ~generic_parameter_specialization_map_keyst ()
 Removes the top of the stack for each key in erase_keys from the controlled map. More...
 
 generic_parameter_specialization_map_keyst (const generic_parameter_specialization_map_keyst &)=delete
 
generic_parameter_specialization_map_keystoperator= (const generic_parameter_specialization_map_keyst &)=delete
 
void insert_pairs_for_pointer (const pointer_typet &pointer_type, const typet &pointer_subtype_struct)
 Add a pair of a parameter and its types for each generic parameter of the given generic pointer type to the controlled map. More...
 
void insert_pairs_for_symbol (const struct_tag_typet &, const typet &symbol_struct)
 Add a pair of a parameter and its types for each generic parameter of the given generic symbol type to the controlled map. More...
 

Private Member Functions

void insert_pairs (const std::vector< java_generic_parametert > &parameters, const std::vector< reference_typet > &types)
 Add pairs to the controlled map. More...
 

Private Attributes

generic_parameter_specialization_maptgeneric_parameter_specialization_map
 Generic parameter specialization map to modify. More...
 
std::vector< irep_idterase_keys
 Keys of the entries to pop on destruction. More...
 

Detailed Description

Definition at line 16 of file generic_parameter_specialization_map_keys.h.

Constructor & Destructor Documentation

◆ generic_parameter_specialization_map_keyst() [1/2]

generic_parameter_specialization_map_keyst::generic_parameter_specialization_map_keyst ( generic_parameter_specialization_mapt _generic_parameter_specialization_map)
inlineexplicit

Initialize a generic-parameter-specialization-map entry owner operating on a given map.

Initially it does not own any map entry.

Parameters
_generic_parameter_specialization_mapmap to operate on.

Definition at line 22 of file generic_parameter_specialization_map_keys.h.

◆ ~generic_parameter_specialization_map_keyst()

generic_parameter_specialization_map_keyst::~generic_parameter_specialization_map_keyst ( )
inline

Removes the top of the stack for each key in erase_keys from the controlled map.

Definition at line 32 of file generic_parameter_specialization_map_keys.h.

◆ generic_parameter_specialization_map_keyst() [2/2]

generic_parameter_specialization_map_keyst::generic_parameter_specialization_map_keyst ( const generic_parameter_specialization_map_keyst )
delete

Member Function Documentation

◆ insert_pairs()

void generic_parameter_specialization_map_keyst::insert_pairs ( const std::vector< java_generic_parametert > &  parameters,
const std::vector< reference_typet > &  types 
)
private

Add pairs to the controlled map.

Own the keys and pop from their stack on destruction; otherwise do nothing.

Parameters
parametersgeneric parameters that are the keys of the pairs to add
typesa type to add for each parameter

Definition at line 42 of file generic_parameter_specialization_map_keys.cpp.

◆ insert_pairs_for_pointer()

void generic_parameter_specialization_map_keyst::insert_pairs_for_pointer ( const pointer_typet pointer_type,
const typet pointer_subtype_struct 
)

Add a pair of a parameter and its types for each generic parameter of the given generic pointer type to the controlled map.

Own the keys and pop from their stack on destruction; otherwise do nothing.

Parameters
pointer_typepointer type to get the specialized generic types from
pointer_subtype_structstruct type to which the generic pointer points, must be generic if the pointer is generic

Definition at line 93 of file generic_parameter_specialization_map_keys.cpp.

◆ insert_pairs_for_symbol()

void generic_parameter_specialization_map_keyst::insert_pairs_for_symbol ( const struct_tag_typet struct_tag_type,
const typet symbol_struct 
)

Add a pair of a parameter and its types for each generic parameter of the given generic symbol type to the controlled map.

This function is used for generic bases (superclass or interfaces) where the reference to it is in the form of a symbol rather than a pointer (as opposed to the function insert_pairs_for_pointer). Own the keys and pop from their stack on destruction; otherwise do nothing.

Parameters
struct_tag_typesymbol type to get the specialized generic types from
symbol_structstruct type of the symbol type, must be generic if the symbol is generic

Definition at line 142 of file generic_parameter_specialization_map_keys.cpp.

◆ operator=()

generic_parameter_specialization_map_keyst& generic_parameter_specialization_map_keyst::operator= ( const generic_parameter_specialization_map_keyst )
delete

Member Data Documentation

◆ erase_keys

std::vector<irep_idt> generic_parameter_specialization_map_keyst::erase_keys
private

Keys of the entries to pop on destruction.

Definition at line 61 of file generic_parameter_specialization_map_keys.h.

◆ generic_parameter_specialization_map

generic_parameter_specialization_mapt& generic_parameter_specialization_map_keyst::generic_parameter_specialization_map
private

Generic parameter specialization map to modify.

Definition at line 59 of file generic_parameter_specialization_map_keys.h.


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