CGAL 5.1 - Handles and Circulators

#include <Concepts/Handle.h>

Definition

Most data structures in CGAL use the concept of Handle in their user interface to refer to the elements they store. This concept describes what is sometimes called a trivial iterator. A Handle is akin to a pointer to an object providing the dereference operator operator*() and member access operator->() but no increment or decrement operators like iterators. A Handle is intended to be used whenever the referenced object is not part of a logical sequence.

Like iterators, the handle can be passed as template argument to std::iterators_traits in order to extract its value_type, the type of the element pointed to. The iterator_category is void.

Refines:
Descriptor

The default constructed object must be unique as far as the equality operator is concerned (this serves the same purpose as NULL for pointers). (Note that this is not a generally supported feature of iterators of standard containers.)

Has Models:

T* (pointer)

const T* (const pointers)

Iterator

Circulator

Dereference

value_type & operator* ()
 returns the object pointed to. More...
 
value_type * operator-> ()
 returns a pointer to the object pointed to. More...
 

Member Function Documentation

◆ operator*()

value_type& Handle::operator* ( )

returns the object pointed to.

◆ operator->()

value_type* Handle::operator-> ( )

returns a pointer to the object pointed to.