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.
bobcatlcgen 5 local-lcThis 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.