cairomm: Cairo::Path::const_iterator Class Reference

cairomm 1.19.1

Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Cairo::Path::const_iterator Class Reference

A custom const_iterator for iterating over a Path. More...

`#include <cairomm/path.h>`

## Public Types
using | iterator_category = std::forward_iterator_tag
using | value_type = const Element
using | difference_type = std::ptrdiff_t
using | pointer = const Element*
using | reference = const Element&

## Public Member Functions
bool | operator== (const const_iterator & iter) const
bool | operator!= (const const_iterator & iter) const
const_iterator & | operator++ ()
const_iterator | operator++ (int)
reference | operator* ()
pointer | operator-> ()

## Protected Member Functions
| const_iterator (cairo_path_data_t * path_data)

## Protected Attributes
Element | m_node

## Detailed Description

A custom const_iterator for iterating over a Path.

This is made slightly complicated because each element can have different numbers of sub-elements, so advancing the const_iterator must advance the base pointer a different amount based on the current element.

Also, because of the way the base cairo path structure is set up, you can only traverse the list forward, because the only guarantee about the structure is that the first element is a header type which tells the location of the next header.

Since cairomm 1.20

Examples
  path-iter.cc.

## Member Typedef Documentation

## ◆ difference_type

using Cairo::Path::const_iterator::difference_type = std::ptrdiff_t

## ◆ iterator_category

using Cairo::Path::const_iterator::iterator_category = std::forward_iterator_tag

## ◆ pointer

using Cairo::Path::const_iterator::pointer = const Element*

## ◆ reference

using Cairo::Path::const_iterator::reference = const Element&

## ◆ value_type

using Cairo::Path::const_iterator::value_type = const Element

## Constructor & Destructor Documentation

## ◆ const_iterator()

Cairo::Path::const_iterator::const_iterator | ( | cairo_path_data_t * | path_data | ) |
| protected

## Member Function Documentation

## ◆ operator!=()

bool Cairo::Path::const_iterator::operator!= | ( | const const_iterator & | iter | ) | const
| inline

## ◆ operator*()

reference Cairo::Path::const_iterator::operator* | ( |  | ) |
| inline

## ◆ operator++() [1/2]

const_iterator & Cairo::Path::const_iterator::operator++ | ( |  | ) |

## ◆ operator++() [2/2]

const_iterator Cairo::Path::const_iterator::operator++ | ( | int |  | ) |

## ◆ operator->()

pointer Cairo::Path::const_iterator::operator-> | ( |  | ) |
| inline

## ◆ operator==()

bool Cairo::Path::const_iterator::operator== | ( | const const_iterator & | iter | ) | const
| inline

## Member Data Documentation

## ◆ m_node

Element Cairo::Path::const_iterator::m_node
| protected

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

- cairomm/path.h