FBB::Iterator(3bobcat)
Iterator returning plain values
(libbobcat-dev_6.06.02)
2005-2024
NAME
FBB::Iterator - Iterator returning plain values when dereferenced
FBB::ReverseIterator - reverse_iterator for FBB::Iterator
SYNOPSIS
    #include <bobcat/iterator>
DESCRIPTION
The FBB::Iterator<Type> class template implements a bidirectional iterator
for plain data types. Dereferencing FBB::Iterator objects returns values
of type Type, e.g., char or int. This iterator comes in handy in
case you need to initialize an objects with a range of values, which are of
some basic type (see also the EXAMPLE section).
FBB::ReverseIterator implements a reverse iterator for FBB::Iterator.
NAMESPACE
    FBB
    All constructors, members, operators and manipulators, mentioned in this
man-page, are defined in the namespace FBB.
INHERITS FROM
    std::iterator<std::bidirectional_iterator_tag, ...>
CONSTRUCTORS
Constructors for Iterator<Type>:
    
    -  explicit Iterator(Tye const &value):
 This constructor initializes the Iterator object with an initial
        Type value. When dereferencing this iterator, value is
        returned.
The Iterator<Type>'s default, copy, and
move constructors (and its copy and move assignment operators) are available.
Constructors for ReverseIterator<Type>:
    
    -  explicit ReverseIterator(Type const &value):
 This constructor initializes the ReverseIterator object with an
        initial Type value. When dereferencing this iterator immediately
        following its construction, the decremented value is returned
        (without modifying the internally stored Type value);
 
-  explicit ReverseIterator(Iterator<Type> const &iter):
 This constructor initializes the ReverseIterator object with an
        initial Iterator<Type> object. When dereferencing this iterator
        immediately following its construction, the decremented Iterator's
        value is returned (without modifying the Type
        value that is stored inside the Iterator).
The ReverseIterator<Type>'s default, copy, and
move constructors (and its copy and move assignment operators) are available.
MEMBER FUNCTIONS
    For template parameter type Type all members of
std::iterator<std:::reverse_iterator_tag, Type> are available, as
FBB::Iterator and FBB::ReverseIterator inherit from this class.
    -  Iterator<Type> &operator++():
 The (prefix) increment operator increments the iterator's value and
        returns a reference to itself;
 
-  Iterator<Type> &operator++(int):
 The (postfix) increment operator increments the iterator's value and
        returns a copy of itself, initialized with the iterator's value before
        it was incremented;
 
-  Iterator<Type> &operator--():
 The (prefix) decrement operator decrements the iterator's value and
        returns a reference to itself;
 
-  Iterator<Type> &operator--(int):
 The (postfix) decrement operator decrements the iterator's value and
        returns a copy of itself, initialized with the iterator's value before
        it was decremented;
 
-  bool operator==(Iterator<Type> const &rhs) const:
 This operator returns true if the value of the current Iterator
        object is equal to the value of the rhs Iterator object;
 
-  bool operator!=(Iterator<Type> const &rhs) const:
 This operator returns true if the value of the current Iterator
        object is not equal to the value of the rhs Iterator object;
 
-  Type &operator*():
 The derefence operator returns a reference to the Iterator's value.
 
-  Type const &operator*() const:
 This derefence operator returns a reference to the Iterator's
        immutable value.
STATIC MEMBER FUNCTIONS
Static members of Iterator<Type>:
    
    -  Iterator<Type> last(Type value):
 An Iterator<Type> object is returned initialized with ++value,
        so it can be conveniently be used to create an inclusive iterator
        range (see also section EXAMPLE);
 
-  Iterator<Type> max():
 An Iterator<Type> object is returned initialized with the value
        returned by std::numeric_limits<Type>::max();
 
-  Iterator<Type> min():
 An Iterator<Type> object is returned initialized with the value
        returned by std::numeric_limits<Type>::min()
Static member of ReverseIterator<Type>:
    
    -  ReverseIterator<Type> last(Type const &value):
 A ReverseIterator<Type> object is returned initialized with
        Iterator<Type>::last(value), so it can be conveniently be used to
        create an inclusive reverse iterator range (see also section
        EXAMPLE);
EXAMPLE
    
#include <algorithm>
#include <iterator>
#include <iostream>
#include <string>
#include <bobcat/iterator>
using namespace std;
using namespace FBB;
int main()
{
    copy(Iterator<int>(10), Iterator<int>(20),
            ostream_iterator<int>(cout, ", "));
    cout << '\n';
    copy(Iterator<char>(*Iterator<char>::max() - 9),
            Iterator<char>::last(*Iterator<char>::max()),
            ostream_iterator<int>(cout, ", "));
    cout << '\n';
    cout << *Iterator<int>::max() << '\n';
    copy(Iterator<int>(*Iterator<int>::max() - 9),
            Iterator<int>::last(*Iterator<int>::max()),
            ostream_iterator<int>(cout, ", "));
    cout << '\n';
    copy(ReverseIterator<int>(20), ReverseIterator<int>(10),
            ostream_iterator<int>(cout, ", "));
    cout << '\n';
    std::string letters(Iterator<char>('a'), Iterator<char>::last('z'));
    cout << letters << '\n';
    std::string caps(ReverseIterator<char>::last('Z'),
                     ReverseIterator<char>('A'));
    cout << caps << '\n';
}
FILES
    bobcat/iterator - defines the class interface
SEE ALSO
    bobcat(7)
BUGS
    None Reported.
BOBCAT PROJECT FILES
    -  https://fbb-git.gitlab.io/bobcat/: gitlab project page;
    
-  bobcat_6.06.02-x.dsc: detached signature;
    
-  bobcat_6.06.02-x.tar.gz: source archive;
    
-  bobcat_6.06.02-x_i386.changes: change log;
    
-  libbobcat1_6.06.02-x_*.deb: debian package containing the
            libraries;
    
-  libbobcat1-dev_6.06.02-x_*.deb: debian package containing the
            libraries, headers and manual pages;
    
BOBCAT
    Bobcat is an acronym of `Brokken's Own Base Classes And Templates'.
COPYRIGHT
    This is free software, distributed under the terms of the
    GNU General Public License (GPL).
AUTHOR
    Frank B. Brokken (f.b.brokken@rug.nl).