\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)
CGAL 4.7 - Handles and Circulators
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages

Implementation

Since not all current compilers can eliminate the space needed for the compile time tags even when deriving from them, we implement a variant for each base class that contains a protected void* data member called _ptr. Here, the allocated space in the derived classes can be reused.

Classes

struct  CGAL::Forward_circulator_base< T, Dist, Size >
 
struct  CGAL::Bidirectional_circulator_base< T, Dist, Size >
 
struct  CGAL::Random_access_circulator_base< T, Dist, Size >
 
class  CGAL::Forward_circulator_ptrbase< T, Dist, Size >
 forward circulator. More...
 
class  CGAL::Bidirectional_circulator_ptrbase< T, Dist, Size >
 bidirectional circulator. More...
 
class  CGAL::Random_access_circulator_ptrbase< T, Dist, Size >
 random access circulator. More...