NAME
bobcatlcgen - Generator for the FBB::LC template class
SYNOPSIS
bobcatlcgen nTypes [class-file]
DESCRIPTION
In the Bobcat header file <bobcat/lc> a template class is defined that
can be used to define and declare a local context struct to be used
with the unary and binary argument context wrappers FBB::FnWrap1c and
FBB::FnWrap2c. The <bobcat/lc> header file provides for local context
structs up to 10 template type parameters.
bobcatlcgen can be used locally to enlarge this default number
(reducing the maximum is also possible but in practice probably
pointless). It expects the maximum number of template type parameters
for the FBB::LC template class as defined in the newly generated header
file.
The header file generated by bobcatlcgen can be used in lieu of the
header file provided by the bobcat archive or (-dev) distribution.
EXAMPLE
Assume the following command was specified:
bobcatlcgen 5 local-lc
This generates the file ‘local-lc’ in the current directory defining
FBB::LC for at most 5 template type parameters. The following file
(e.g., main.cc) in the current directory will use local-lc rather than
<bobcat/lc>:
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <bobcat/fnwrap1c>
#include "local-lc"
using namespace std;
using namespace FBB;
class Strings
{
typedef LC<size_t, ostream &> lc;
vector<string> d_vs;
public:
Strings()
{
d_vs.push_back("one");
d_vs.push_back("two");
d_vs.push_back("");
d_vs.push_back("three");
}
void display(ostream &out) const
{
lc c(1, out);
find_if(d_vs.begin(), d_vs.end(),
FnWrap1c<string const &, lc &, bool>
(&Strings::untilEmpty, c));
}
private:
static bool untilEmpty(string const &str, lc &c)
{
if (str.empty())
return true; // stop
c.f2 << c.f1++ << " " << str << endl;
return false; // don’t stop
}
};
int main()
{
Strings s;
s.display(cout);
}
When comparing the above example to the example provided in the
lc(3bobcat) man page note that the only difference is that here the
header file local-lc rather than <bobcat/lc> is included.
SEE ALSO
bobcat(7), fnwrap1c(3bobcat), fnwrap2c(3bobcat), lc(3bobcat)
BUGS
None Reported.
DISTRIBUTION FILES
o bobcat_2.08.01-x.dsc: detached signature;
o bobcat_2.08.01-x.tar.gz: source archive;
o bobcat_2.08.01-x_i386.changes: change log;
o libbobcat1_2.08.01-x_*.deb: debian package holding the
libraries;
o libbobcat1-dev_2.08.01-x_*.deb: debian package holding the
libraries, 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).