ROSE 0.11.145.147
Public Types | Public Member Functions | Protected Attributes | List of all members
RangeMapValue< R, T > Class Template Reference

Description

template<class R, class T>
class RangeMapValue< R, T >

Scalar value type for a RangeMap.

Values can be merged if they compare equal; splitting a value is done by copying it. The removing() and truncate() methods are no-ops. This class is often used as a base class for other more sophisticated range maps. See the RangeMapVoid class for full documentation.

Definition at line 674 of file rangemap.h.

#include <roseSupport/rangemap.h>

Collaboration diagram for RangeMapValue< R, T >:
Collaboration graph
[legend]

Public Types

typedef R Range
 
typedef T Value
 

Public Member Functions

 RangeMapValue ()
 Constructor creates object whose underlying value is default constructed.
 
 RangeMapValue (const Value &v)
 Constructor creates object with specified value.
 
virtual void removing (const Range &my_range)
 Called when this value is being removed from a RangeMap.
 
virtual void truncate (const Range &my_range, const typename Range::Value &new_end)
 Called when removing part of a value from a RangeMap.
 
bool merge (const Range &my_range, const Range &other_range, const RangeMapValue &other_value)
 Called to merge two RangeMap values.
 
virtual void set (const Value &v)
 Accessor for the value actually stored here.
 
virtual Value get () const
 Accessor for the value actually stored here.
 

Protected Attributes

Value value
 
virtual void print (std::ostream &o) const
 Print a RangeMap value.
 

Member Typedef Documentation

◆ Range

template<class R , class T >
typedef R RangeMapValue< R, T >::Range

Definition at line 676 of file rangemap.h.

◆ Value

template<class R , class T >
typedef T RangeMapValue< R, T >::Value

Definition at line 677 of file rangemap.h.

Constructor & Destructor Documentation

◆ RangeMapValue() [1/2]

template<class R , class T >
RangeMapValue< R, T >::RangeMapValue ( )
inline

Constructor creates object whose underlying value is default constructed.

Definition at line 680 of file rangemap.h.

◆ RangeMapValue() [2/2]

template<class R , class T >
RangeMapValue< R, T >::RangeMapValue ( const Value &  v)
inline

Constructor creates object with specified value.

Definition at line 683 of file rangemap.h.

◆ ~RangeMapValue()

template<class R , class T >
virtual RangeMapValue< R, T >::~RangeMapValue ( )
inlinevirtual

Definition at line 688 of file rangemap.h.

Member Function Documentation

◆ set()

template<class R , class T >
virtual void RangeMapValue< R, T >::set ( const Value &  v)
inlinevirtual

Accessor for the value actually stored here.

Definition at line 693 of file rangemap.h.

◆ get()

template<class R , class T >
virtual Value RangeMapValue< R, T >::get ( ) const
inlinevirtual

Accessor for the value actually stored here.

Definition at line 696 of file rangemap.h.

Referenced by RangeMapValue< R, T >::merge().

◆ removing()

template<class R , class T >
virtual void RangeMapValue< R, T >::removing ( const Range my_range)
inlinevirtual

Called when this value is being removed from a RangeMap.

Definition at line 703 of file rangemap.h.

References Range< T >::empty().

◆ truncate()

template<class R , class T >
virtual void RangeMapValue< R, T >::truncate ( const Range my_range,
const typename Range::Value &  new_end 
)
inlinevirtual

Called when removing part of a value from a RangeMap.

Definition at line 708 of file rangemap.h.

References Range< T >::first(), and Range< T >::last().

◆ merge()

template<class R , class T >
bool RangeMapValue< R, T >::merge ( const Range my_range,
const Range other_range,
const RangeMapValue< R, T > &  other_value 
)
inline

Called to merge two RangeMap values.

The values can be merged only if they compare equal.

Definition at line 713 of file rangemap.h.

References Range< T >::empty(), and RangeMapValue< R, T >::get().

◆ print()

template<class R , class T >
virtual void RangeMapValue< R, T >::print ( std::ostream &  o) const
inlinevirtual

Print a RangeMap value.

Definition at line 728 of file rangemap.h.

Member Data Documentation

◆ value

template<class R , class T >
Value RangeMapValue< R, T >::value
protected

Definition at line 738 of file rangemap.h.


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