|
Boost Users : |
From: Oliver Schoenborn (oliver.schoenborn_at_[hidden])
Date: 2005-10-22 16:00:01
I know there is a boost::format and it's great. However, I needed something
faster and with more "conventional" syntax. That's the coutf library. I've
been using it for a few months and it's great.
Just to be clear, I'm not suggesting a replacement of boost::format, which
has several features that coutf does not. However in many cases you don't
need those and that's why coutf is a fair bit faster. Also the syntax is
more conventional and several people have mentioned they prefer that. I know
Alexandrescu has also created something similar to coutf (I think he called
it Printf), but I think mine is lighter, I think most people are not too
concerned about not being able to printf 45 parameters, plus it has the
Fmt/FmtGuard stuff :) .
Anyways the docs and code are at http://noptrlib.sf.net/utils/coutf, just
did another update today. Coutf could be a good second alternative to
boost::format for some people. Here are some examples of use:
coutf("Program started at %s:%s:%s\n", hours, minutes, seconds);
cerrf("Error: file %s, line %5s invalid\n", filename, lineNum);
std::string msg = strf("Hex of %s is %04Xs", 123, 123);
int count = 10;
std::ofstream ff("someFile.txt");
// prints array in hex format
{
FmtGuard fmt(ff, "%0#4x");
for (int i=0;i<count;i++)
scoutf( ff, 1 + intArray[i], '\n' );
}
// print in dec format
scoutf( ff, count );
BOOST_LOG(trace) <<
strf("File %s at line %s\n", __FILE__, __LINE__);
Cheers,
Oliver
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net