Audio Processing Framework (APF) version 0.5.0
|
Some macros to avoid code duplication in iterator (adaptor) classes. More...
Some macros to avoid code duplication in iterator (adaptor) classes.
For most of the macros you need special typedefs in your iterator class: self
, reference
, pointer
, difference_type
, ...
The assignment operator isn't provided here because normally the auto-generated assignment operator can be used.
#define APF_ITERATOR_CONSTRUCTORS | ( | iterator_name, | |
base_iterator_type, | |||
base_member | |||
) |
Straightforward default constructor and constructor from base iterator.
iterator_name | Name of the iterator class |
base_iterator_type | Typename of the base iterator |
base_member | Name of the member variable holding the base iterator. |
Definition at line 78 of file iterator.h.
#define APF_ITERATOR_BASE | ( | base_iterator_type, | |
base_member | |||
) |
Get the base iterator.
base_iterator_type | Typename of the base iterator |
base_member | Name of the member variable holding the base iterator. |
Definition at line 89 of file iterator.h.
#define APF_ITERATOR_OUTPUT_DEREFERENCE | ( | base_member | ) |
Straightforward dereference operator.
base_member | Name of the member variable holding the base iterator. |
Definition at line 99 of file iterator.h.
#define APF_ITERATOR_OUTPUT_PREINCREMENT | ( | base_member | ) |
Straightforward preincrement operator.
base_member | Name of the member variable holding the base iterator. |
Definition at line 107 of file iterator.h.
#define APF_ITERATOR_OUTPUT_POSTINCREMENT |
Postincrement operator (using preincrement operator).
Definition at line 114 of file iterator.h.
#define APF_ITERATOR_INPUT_DEREFERENCE APF_ITERATOR_OUTPUT_DEREFERENCE |
Straightforward dereference operator.
base_member | Name of the member variable holding the base iterator. |
Definition at line 123 of file iterator.h.
#define APF_ITERATOR_INPUT_ARROW | ( | base_member | ) |
Straightforward arrow operator.
base_member | Name of the member variable holding the base iterator. |
Definition at line 128 of file iterator.h.
#define APF_ITERATOR_INPUT_EQUAL | ( | base_member | ) |
Straightforward equality operator.
base_member | Name of the member variable holding the base iterator. |
Definition at line 136 of file iterator.h.
#define APF_ITERATOR_INPUT_PREINCREMENT APF_ITERATOR_OUTPUT_PREINCREMENT |
Straightforward preincrement operator.
base_member | Name of the member variable holding the base iterator. |
Definition at line 144 of file iterator.h.
#define APF_ITERATOR_INPUT_POSTINCREMENT APF_ITERATOR_OUTPUT_POSTINCREMENT |
Postincrement operator (using preincrement operator).
Definition at line 148 of file iterator.h.
#define APF_ITERATOR_INPUT_UNEQUAL |
Unequality operator (using equality operator)
Definition at line 152 of file iterator.h.
#define APF_ITERATOR_FORWARD_EQUAL APF_ITERATOR_INPUT_EQUAL |
Straightforward equality operator.
base_member | Name of the member variable holding the base iterator. |
Definition at line 161 of file iterator.h.
#define APF_ITERATOR_FORWARD_DEREFERENCE APF_ITERATOR_INPUT_DEREFERENCE |
Straightforward dereference operator.
base_member | Name of the member variable holding the base iterator. |
Definition at line 165 of file iterator.h.
#define APF_ITERATOR_FORWARD_ARROW APF_ITERATOR_INPUT_ARROW |
Straightforward arrow operator.
base_member | Name of the member variable holding the base iterator. |
Definition at line 169 of file iterator.h.
#define APF_ITERATOR_FORWARD_PREINCREMENT APF_ITERATOR_INPUT_PREINCREMENT |
Straightforward preincrement operator.
base_member | Name of the member variable holding the base iterator. |
Definition at line 173 of file iterator.h.
#define APF_ITERATOR_FORWARD_POSTINCREMENT APF_ITERATOR_INPUT_POSTINCREMENT |
Postincrement operator (using preincrement operator).
Definition at line 177 of file iterator.h.
#define APF_ITERATOR_FORWARD_UNEQUAL APF_ITERATOR_INPUT_UNEQUAL |
Unequality operator (using equality operator).
Definition at line 180 of file iterator.h.
#define APF_ITERATOR_BIDIRECTIONAL_EQUAL APF_ITERATOR_FORWARD_EQUAL |
Straightforward equality operator.
base_member | Name of the member variable holding the base iterator. |
Definition at line 187 of file iterator.h.
#define APF_ITERATOR_BIDIRECTIONAL_DEREFERENCE APF_ITERATOR_FORWARD_DEREFERENCE |
Straightforward dereference operator.
base_member | Name of the member variable holding the base iterator. |
Definition at line 191 of file iterator.h.
#define APF_ITERATOR_BIDIRECTIONAL_ARROW APF_ITERATOR_FORWARD_ARROW |
Straightforward arrow operator.
base_member | Name of the member variable holding the base iterator. |
Definition at line 195 of file iterator.h.
#define APF_ITERATOR_BIDIRECTIONAL_PREINCREMENT APF_ITERATOR_FORWARD_PREINCREMENT |
Straightforward preincrement operator.
base_member | Name of the member variable holding the base iterator. |
Definition at line 199 of file iterator.h.
#define APF_ITERATOR_BIDIRECTIONAL_PREDECREMENT | ( | base_member | ) |
Straightforward predecrement operator.
base_member | Name of the member variable holding the base iterator. |
Definition at line 204 of file iterator.h.
#define APF_ITERATOR_BIDIRECTIONAL_POSTINCREMENT APF_ITERATOR_FORWARD_POSTINCREMENT |
Postincrement operator (using preincrement operator).
Definition at line 211 of file iterator.h.
#define APF_ITERATOR_BIDIRECTIONAL_UNEQUAL APF_ITERATOR_FORWARD_UNEQUAL |
Unequality operator (using equality operator).
Definition at line 214 of file iterator.h.
#define APF_ITERATOR_BIDIRECTIONAL_POSTDECREMENT |
Postdecrement operator (using predecrement operator).
Definition at line 218 of file iterator.h.
#define APF_ITERATOR_RANDOMACCESS_EQUAL APF_ITERATOR_BIDIRECTIONAL_EQUAL |
Straightforward equality operator.
base_member | Name of the member variable holding the base iterator. |
Definition at line 227 of file iterator.h.
#define APF_ITERATOR_RANDOMACCESS_DEREFERENCE APF_ITERATOR_BIDIRECTIONAL_DEREFERENCE |
Straightforward dereference operator.
base_member | Name of the member variable holding the base iterator. |
Definition at line 231 of file iterator.h.
#define APF_ITERATOR_RANDOMACCESS_ARROW APF_ITERATOR_BIDIRECTIONAL_ARROW |
Straightforward arrow operator.
base_member | Name of the member variable holding the base iterator. |
Definition at line 235 of file iterator.h.
#define APF_ITERATOR_RANDOMACCESS_PREINCREMENT APF_ITERATOR_BIDIRECTIONAL_PREINCREMENT |
Straightforward preincrement operator.
base_member | Name of the member variable holding the base iterator. |
Definition at line 239 of file iterator.h.
#define APF_ITERATOR_RANDOMACCESS_PREDECREMENT APF_ITERATOR_BIDIRECTIONAL_PREDECREMENT |
Straightforward predecrement operator.
base_member | Name of the member variable holding the base iterator. |
Definition at line 243 of file iterator.h.
#define APF_ITERATOR_RANDOMACCESS_ADDITION_ASSIGNMENT | ( | base_member | ) |
Straightforward addition/assignment operator.
base_member | Name of the member variable holding the base iterator. |
Definition at line 248 of file iterator.h.
#define APF_ITERATOR_RANDOMACCESS_DIFFERENCE | ( | base_member | ) |
Straightforward difference operator.
base_member | Name of the member variable holding the base iterator. |
Definition at line 257 of file iterator.h.
#define APF_ITERATOR_RANDOMACCESS_SUBSCRIPT |
Straightforward subscript operator (using + and dereference operator).
Definition at line 266 of file iterator.h.
#define APF_ITERATOR_RANDOMACCESS_LESS | ( | base_member | ) |
Straightforward less-than operator.
base_member | Name of the member variable holding the base iterator. |
Definition at line 274 of file iterator.h.
#define APF_ITERATOR_RANDOMACCESS_UNEQUAL APF_ITERATOR_BIDIRECTIONAL_UNEQUAL |
Unequality operator (using equality operator).
base_member | Name of the member variable holding the base iterator. |
Definition at line 284 of file iterator.h.
#define APF_ITERATOR_RANDOMACCESS_OTHER_COMPARISONS |
Other comparisons (>, <=, >=).
All are using the less-than operator.
Definition at line 289 of file iterator.h.
#define APF_ITERATOR_RANDOMACCESS_POSTINCREMENT APF_ITERATOR_BIDIRECTIONAL_POSTINCREMENT |
Postincrement operator (using preincrement operator).
Definition at line 302 of file iterator.h.
#define APF_ITERATOR_RANDOMACCESS_POSTDECREMENT APF_ITERATOR_BIDIRECTIONAL_POSTDECREMENT |
Postdecrement operator (using predecrement operator)
Definition at line 306 of file iterator.h.
#define APF_ITERATOR_RANDOMACCESS_THE_REST |
The rest of the random access iterator requirements.
Definition at line 314 of file iterator.h.