The fastest, most robust C++ formatting library (original) (raw)

Links
Home
Download
SourceForge Project Website
Blog
Documentation
Help Forum
Request FastFormat training
Donate
Performance
Memory Guessing Game
STLSoft
Pantheios
Ultimate robustness! 100% type-safe Unlimited flexibility! infinitely extensible Unbeatable performance! 5 - 17 times faster than Boost.Format 1.5 - 5.5 times faster than Loki.SafeFormat

The History

  1. 15 years of dissatisfaction (with the IOStreams) and wondering (whether there is a better alternative to fprintf()).
  2. 2 giants (log4j andPantheios) on whose inspirational shoulders to stand.
  3. 1 powerful concept (Shim) married to 1 persuasive pattern (Type Tunnel)
  4. 1 weekend to prove the concept
  5. Almost 2 years faffing around with work, andPantheios, andExtended STL, andMonolith*, and so on before getting my act together and releasing it.
  6. The rest of my C++ programming life to enjoy fast, extensible, localised and 100% type-safe text formatting/output.

The Alternative

Are you dissatisfied with the usability, performance, lack of type-safety, and lack of / difficulty with extensibility of the printf()-family,Boost.Format and the IOStreams?

Do you value speed, robustness and internationalisation support?

If the answer to these questions is yes, meet FastFormat, the best C++ output/formatting library you'll ever use. It has:

And it does all of this without macros, operator overloading or template meta-programming tricks.

News

22nd June 2010 FastFormat 0.6.1 (alpha 1) is released. Version 0.6.1 (alpha 1) incorporates performance optimisations in the application layer templates for all statements, and to the conversion of default-formatted integers.More details ...
June 2010 Dr. Dobb's has published the articleC++ and format_iterator, which describes the design and implmentation of a flexible, expressive and type-safe output iterator component, which can be used in preference to std::ostream_iterator.
13th April 2010 FastFormat 0.5.6 is released. Version 0.5.6 adds support for '#' fill character, as well as providing greater detection (and rejecton) of defective format specifications.More details ...
June 2009 The June issue of the ACCU's Overload magazine containsAn Introduction to FastFormat, part 3: Solving Real Problems, Quickly. This is the third in a series of three articles about FastFormat that examine the current alternatives in C++ formatting, and demonstrate how FastFormat provides an optimal mix of robustness, efficiency, flexibility, expressiveness and other software quality measures.
1st May 2009 FastFormat 0.3.5 is released. Version 0.3.5 is a full (non-alpha, non-beta) release, and provides full compatibility with GCC, Visual C++, and several other popular compilers on 32- and 64-bit Mac OS-X, UNIX, and Windows.
April 2009 The April issue of the ACCU's Overload magazine containsAn Introduction to FastFormat, part 2: Custom Argument and Sink Types. This is the second in a series of three articles about FastFormat that examine the current alternatives in C++ formatting, and demonstrate how FastFormat provides an optimal mix of robustness, efficiency, flexibility, expressiveness and other software quality measures.
February 2009 The February issue of the ACCU's Overload magazine containsAn Introduction to FastFormat, part 1: The State of the Art. This is the first in a series of three articles about FastFormat that examine the current alternatives in C++ formatting, and demonstrate how FastFormat provides an optimal mix of robustness, efficiency, flexibility, expressiveness and other software quality measures. There're a couple of typos in Table 4, which are corrected here.
13th February 2009 FastFormat 0.3.1 beta 3 is released. Version 0.3 includes the ability to specify min-width and/or max-width and/or alignment; beta 3 provides full compatibility with Borland 6.1
28th December 2008 FastFormat 0.2.1 beta 6 is released. It now contains comparisons - favourable ones, as you'd expect - with Loki's SafeFormat, to accompany those with Boost, C's Streams and C++'s IOStreams
3rd September 2008 FastFormat 0.2.1 (alpha 1) is released.