Provided by: libbobcat-dev_6.04.00-1ubuntu3_amd64 bug

NAME

       FBB::Reverse - A class template offering reverse iterators

SYNOPSIS

       #include <bobcat/reverse>

DESCRIPTION

       Not  all  data  types  offering  (or implicitly providing) iterators also offer reverse_iterators. Arrays
       don’t, and neither do initalizer_lists. Pointers to array elements can be used instead of iterators,  but
       arrays  cannot  be  used in range-based for-loops. The Ranger class (cf. ranger(3bobcat)) can be used for
       defining begin and end members allowing the use of arrays in range-based for-loops. Using Reverse objects
       and data structures can be used in range-based for-loops and/or to obtain reverse-iterators to visit data
       elements in reversed order.

       The class template Reverse, ReverseArray, and  ReverseSize  are  normally  not  directly  used,  but  are
       returned by the various reverse support functions. These three classes offer two members begin, returning
       a  reverse_iterator  to  the  end  of  the data range of the object passed to reverse and end returning a
       reverse_iterator to the beginning of the data range of the object passed to reverse.

NAMESPACE

       FBB
       All constructors, members, operators and manipulators, mentioned in this man-page,  are  defined  in  the
       namespace FBB.

INHERITS FROM

       -

REVERSE FUNCTIONS

       o      reverse(Type &object):
              returns  a  Reverse  object  offering  reverse  iterators  to the data range of object, which must
              support begin and end members. If Type is a constant type, then Reverse’s begin  and  end  members
              return const_reverse_iterators, otherwise reverse_iterators are returned;

       o      reverse(Type (&array)[size]):
              returns a Reverse object offering reverse iterators to the reversed range of elements of array. If
              Type  is  a  constant  type,  then Reverse’s begin and end members return const_reverse_iterators,
              otherwise reverse_iterators are returned;

       o      reverse(Type *array, size_t size):
              returns a Reverse object offering reverse iterators to the reversed range of elements of array  to
              array  +  size.  If  Type  is  a  constant  type,  then  Reverse’s  begin  and  end members return
              const_reverse_iterators, otherwise reverse_iterators are returned.

EXAMPLE

       #include <iostream>
       #include <vector>

       #include <bobcat/reverse>

       using namespace std;
       using namespace FBB;

       int main()
       {
           int intArr[] = { 1, 2, 3, 4, 5};        // arrays of known sizes
           for (int value: reverse(intArr))
               cout << value << ’ ’;
           cout << ’\n’;

           for (int value: reverse(intArr, 5))     // using specified sizes
               cout << value << ’ ’;
           cout << ’\n’;

           int const constArr[] = { 1, 2, 3, 4, 5};// arrays with const elements
           for (int value: reverse(constArr))
               cout << value << ’ ’;
           cout << ’\n’;

           for (int value: reverse(constArr, 5))   // using specified sizes
               cout << value << ’ ’;
           cout << ’\n’;

           for (int value: reverse(intArr, 5))     // arrays of specified sizes
               cout << value << ’ ’;
           cout << ’\n’;

           vector<int> vi{ 1, 2, 3, 4, 5 };        // handle non-const objects
           for (int value: reverse(vi))
               cout << value << ’ ’;
           cout << ’\n’;

           vector<int> const cvi{ 1, 2, 3, 4, 5 }; // handle const objects
           for (int value: reverse(cvi))
               cout << value << ’ ’;
           cout << ’\n’;
                                                   // handle lvalues
           for (int value: reverse(initializer_list<int>{ 1, 2, 4, 8 }))
               cout << value << ’ ’;
           cout.put(’\n’);
                                                   // named constant objects
           auto ilist = initializer_list<int>{ 1, 2, 4, 8 };
           for (int value: reverse(ilist))
               cout << value << ’ ’;
           cout.put(’\n’);
       }

FILES

       bobcat/reverse - defines the class interfaces and declares the reverse functions.

SEE ALSO

       bobcat(7), ranger(3bobcat)

BUGS

       None Reported.

BOBCAT PROJECT FILES

       o      https://fbb-git.gitlab.io/bobcat/: gitlab project page;

       o      bobcat_6.04.00-x.dsc: detached signature;

       o      bobcat_6.04.00-x.tar.gz: source archive;

       o      bobcat_6.04.00-x_i386.changes: change log;

       o      libbobcat1_6.04.00-x_*.deb: debian package containing the libraries;

       o      libbobcat1-dev_6.04.00-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).

libbobcat-dev_6.04.00                               2005-2023                              FBB::Reverse(3bobcat)