LLVM  8.0.1
Public Member Functions | List of all members
llvm::IntervalMapOverlaps< MapA, MapB > Class Template Reference

IntervalMapOverlaps - Iterate over the overlaps of mapped intervals in two IntervalMaps. More...

#include "llvm/ADT/IntervalMap.h"

Public Member Functions

 IntervalMapOverlaps (const MapA &a, const MapB &b)
 IntervalMapOverlaps - Create an iterator for the overlaps of a and b. More...
 
bool valid () const
 valid - Return true if iterator is at an overlap. More...
 
const MapA::const_iterator & a () const
 a - access the left hand side in the overlap. More...
 
const MapB::const_iterator & b () const
 b - access the right hand side in the overlap. More...
 
KeyType start () const
 start - Beginning of the overlapping interval. More...
 
KeyType stop () const
 stop - End of the overlapping interval. More...
 
void skipA ()
 skipA - Move to the next overlap that doesn't involve a(). More...
 
void skipB ()
 skipB - Move to the next overlap that doesn't involve b(). More...
 
IntervalMapOverlapsoperator++ ()
 Preincrement - Move to the next overlap. More...
 
void advanceTo (KeyType x)
 advanceTo - Move to the first overlapping interval with stopLess(x, stop()). More...
 

Detailed Description

template<typename MapA, typename MapB>
class llvm::IntervalMapOverlaps< MapA, MapB >

IntervalMapOverlaps - Iterate over the overlaps of mapped intervals in two IntervalMaps.

The maps may be different, but the KeyT and Traits types should be the same.

Typical uses:

  1. Test for overlap: bool overlap = IntervalMapOverlaps(a, b).valid();
  2. Enumerate overlaps: for (IntervalMapOverlaps I(a, b); I.valid() ; ++I) { ... }

Definition at line 2059 of file IntervalMap.h.

Constructor & Destructor Documentation

◆ IntervalMapOverlaps()

template<typename MapA , typename MapB >
llvm::IntervalMapOverlaps< MapA, MapB >::IntervalMapOverlaps ( const MapA &  a,
const MapB &  b 
)
inline

IntervalMapOverlaps - Create an iterator for the overlaps of a and b.

Definition at line 2101 of file IntervalMap.h.

Member Function Documentation

◆ a()

template<typename MapA , typename MapB >
const MapA::const_iterator& llvm::IntervalMapOverlaps< MapA, MapB >::a ( ) const
inline

a - access the left hand side in the overlap.

Definition at line 2111 of file IntervalMap.h.

◆ advanceTo()

template<typename MapA , typename MapB >
void llvm::IntervalMapOverlaps< MapA, MapB >::advanceTo ( KeyType  x)
inline

advanceTo - Move to the first overlapping interval with stopLess(x, stop()).

Definition at line 2154 of file IntervalMap.h.

◆ b()

template<typename MapA , typename MapB >
const MapB::const_iterator& llvm::IntervalMapOverlaps< MapA, MapB >::b ( ) const
inline

b - access the right hand side in the overlap.

Definition at line 2114 of file IntervalMap.h.

◆ operator++()

template<typename MapA , typename MapB >
IntervalMapOverlaps& llvm::IntervalMapOverlaps< MapA, MapB >::operator++ ( )
inline

Preincrement - Move to the next overlap.

Definition at line 2143 of file IntervalMap.h.

◆ skipA()

template<typename MapA , typename MapB >
void llvm::IntervalMapOverlaps< MapA, MapB >::skipA ( )
inline

skipA - Move to the next overlap that doesn't involve a().

Definition at line 2131 of file IntervalMap.h.

◆ skipB()

template<typename MapA , typename MapB >
void llvm::IntervalMapOverlaps< MapA, MapB >::skipB ( )
inline

skipB - Move to the next overlap that doesn't involve b().

Definition at line 2137 of file IntervalMap.h.

◆ start()

template<typename MapA , typename MapB >
KeyType llvm::IntervalMapOverlaps< MapA, MapB >::start ( ) const
inline

start - Beginning of the overlapping interval.

Definition at line 2117 of file IntervalMap.h.

◆ stop()

template<typename MapA , typename MapB >
KeyType llvm::IntervalMapOverlaps< MapA, MapB >::stop ( ) const
inline

stop - End of the overlapping interval.

Definition at line 2124 of file IntervalMap.h.

◆ valid()

template<typename MapA , typename MapB >
bool llvm::IntervalMapOverlaps< MapA, MapB >::valid ( ) const
inline

valid - Return true if iterator is at an overlap.

Definition at line 2106 of file IntervalMap.h.


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