Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
FBB::repeat(3bobcat)	    repeated function calls	  FBB::repeat(3bobcat)

NAME
       FBB::repeat - call a (member) function a	fixed number of	times

SYNOPSIS
       #include	<bobcat/repeat>

DESCRIPTION
       The  FBB::repeat	function template allows a function or member function
       to be called a certain number of	times. The functions or	 member	 func-
       tions  may define arguments. Arguments to these functions are specified
       when repeat is called, and are perfectly	forwarded by the repeat	 func-
       tion template to	the (member) function called by	repeat.

       The  first  argument of the repeat function template defines the	number
       of times	the (member) function must be called.

       The FBB::repeat function	template are defined inline, allowing the com-
       piler to	`optimize away'	the repeat function call itself.

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

INHERITS FROM
       -

REPEAT FUNCTION	TEMPLATE
       The repeat function template is declared	as:

       template	<typename Counter, typename First, typename ...Params>
       void repeat(Counter counter, First &&first, Params &&...params);

       In this declaration,

       o      Counter represents the counter's type. Usually an	int or size_t.
	      When calling repeat counter must be initialized to the number of
	      times repeat must	call the (member) function (see	below);

       o      First represents the prototype of	a function or the  name	 of  a
	      class.   name  of	a class. Likewise, first either	is the address
	      (name) of	the function to	be called or the name of an object  of
	      class  type  First. In the latter	case the object	may or may not
	      be a const object.

       o      ...Params	represents the set of  parameter  types	 of  arguments
	      which  must  be  perfectly  forwarded to the called function. If
	      first represents a class type object, the	first argument must be
	      the address of a member function of the class First.

EXAMPLES
       #include	<iostream>
       #include	<iterator>
       #include	<algorithm>

       #include	"../repeat"

       using namespace std;
       using namespace FBB;

       class Object
       {
	   public:
	       void member(int argc, char **argv) const;
	       void member2(size_t &rept, int argc, char **argv);
       };

       void Object::member(int argc, char **argv) const
       {
	   cout	<< "member called\n";
	   copy(argv, argv + argc, ostream_iterator<char const *>(cout,	"\n"));
       }

       void Object::member2(size_t &rept, int argc, char **argv)
       {
	   cout	<< "member2 called, iteration "	<< rept++ << "\n";
	   copy(argv, argv + argc, ostream_iterator<char const *>(cout,	"\n"));
       }

       void fun()
       {
	   cout	<< "Fun	called\n";
       }

       int main(int argc, char **argv)
       {
	   Object object;

	   cout	<< "\n"
		   "***	The number of arguments	determines the repeat-count ***\n\n";

	   cout	<< "Fun	without	arguments:\n";
	   repeat(argc,	fun);

	   cout	<< "Object receiving argc and argv:\n";
	   repeat(argc,	object,	&Object::member, argc, argv);

	   cout	<< "Object receiving argc and argv, showing the	iteration count:\n";
	   size_t count	= 0;
	   repeat(argc,	object,	&Object::member2, count, argc, argv);

	   Object const	obj;
	   cout	<< "Const Object receiving argc	and argv:\n";
	   repeat(argc,	obj, &Object::member, argc, argv);

       }

FILES
       bobcat/repeat - defines the class interface

SEE ALSO
       bobcat(7)

BUGS
       Be  careful  when  using	overloaded functions, as the template argument
       resolution mechanism may	be unable to determine which function to call.
       If  overloaded functions	must be	used, a	static_cast is likely required
       to disambiguate your intentions.

DISTRIBUTION FILES
       o      bobcat_3.25.01-x.dsc: detached signature;

       o      bobcat_3.25.01-x.tar.gz: source archive;

       o      bobcat_3.25.01-x_i386.changes: change log;

       o      libbobcat1_3.25.01-x_*.deb:  debian  package  holding  the   li-
	      braries;

       o      libbobcat1-dev_3.25.01-x_*.deb:  debian  package holding the li-
	      braries, headers and manual pages;

       o      http://sourceforge.net/projects/bobcat: public archive location;

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_3.25.01-x.tar.gz	   2005-2015		  FBB::repeat(3bobcat)

NAME | SYNOPSIS | DESCRIPTION | NAMESPACE | INHERITS FROM | REPEAT FUNCTION TEMPLATE | EXAMPLES | FILES | SEE ALSO | BUGS | DISTRIBUTION FILES | BOBCAT | COPYRIGHT | AUTHOR

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=repeat&sektion=3bobcat&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help