www.digitalmars.com         C & C++   DMDScript  

c++.stlsoft - FastFormat 0.7.1 (alpha 8) released

FastFormat is an Open Source C/C++ Output/Formatting library, whose design
parameters are 100% type-safety, efficiency, genericity and extensibility. It
is simple to use and extend, expressive, flexible, and highly-portable
(platform and compiler-independent).

FastFormat supports output/formatting of statements of arbitrary complexity,
consisting of heterogeneous types.

FastFormat writes to output "sinks", which can be of arbitrary type. It
implicitly supports any type that is structurally conformant with the standard
library's string, and the library includes adaptors to allow writing to
std::ostream, FILE*, speech (currently Windows-only), STLSoft's auto_buffer,
C-style string buffers, and character buffers. Adaptation to a new type merely
requires the definition of a single function.

FastFormat is robust. Both APIs are 100% type-safe - something neither
IOStreams nor Boost.Format can claim - and with the Write API it is impossible
to compile defective code.

FastFormat is fast. The processing of each statement involves at most one
memory allocation to hold the entire statement, and each statement element is
measured and copied exactly once. As a consequence, the library is on a par
with (the type-unsafe) C's Streams (printf()-family) of functions, faster than
C++'s IOStreams (by 2-5x) and Loki.SafeFormat (by 1-5x), and considerably
faster than Boost.Format (by 5-17x).

FastFormat supports I18N/L10N by using numbered arguments, enabling reordering
of arguments by exchanging format strings. The library comes with a number of
resource bundles, classes whose instances can load sets of localised resource
strings for use as format strings.

FastFormat does not contain any compiler-specific or platform-specific
constructs. It supports UNIX (including Linux and Mac OS-X), and Windows, and
should work with any operating system. It is known to be compatible with Comeau
(4.3.3+), GCC (3.4+), Intel (8+), Metrowerks (8+), Microsoft Visual C++ (6.0+),
and should work with any reasonably modern C++ compiler.

FastFormat is completely free and includes source released under a BSD-style
license. Commercial customisations and related consultancy are provided by
Synesis Software Pty Ltd; http://synesis.com.au/contact.html)

FastFormat Training is provided by Synesis Software Pty Ltd; details at

Release 0.7.1 (alpha 8) contains the following changes:
 * This release mainly contains forward-compatible changes to various inserters
and conversion shims in anticipation of (access to) new components in the
soon-to-be-released (Q4 2012) STLSoft 1.10; it also contains some functional
improvements and new inserter and sink headers.
 * WindowsMessageBox now attempts to elicit caption from top-level parent
window of given window (if not NULL) when the caller specifies no caption
 * added include/fastformat/sinks/iostream.hpp : a shorthand header that
includes the FastFormat sink for IOStreams' std::ostream along with the
standard header <iostream> in which std::cout and std::cerr are declared
 * added include/fastformat/sinks/stlsoft/FILE_stream.hpp, which enables
formatting to instances of STLSoft's stlsoft::FILE_stream and
platformstl::thread_shareable_FILE_stream types
 * added include/fastformat/inserters/ch.hpp, which defines the fastformat::ch
inserter as an alias for fastformat::character
 * added fastformat::to_sink() degenerate conversion shim
 * NOTE: bundles shwild 0.9.20
 * NOTE: bundles xTests 0.16.6
 * NOTE: depends on STLSoft 1.9.115 (not bundled)

Download from: http://sourceforge.net/projects/fastformat/files/fastformat/

Discuss at: http://sourceforge.net/forum/forum.php?forum_id=612781

Donate at: http://sourceforge.net/project/project_donations.php?group_id=177382

FastFormat website: http://fastformat.org/

Note: this release of FastFormat requires STLSoft 1.9.115, or later. Download
from http://stlsoft.org/
Aug 07 2012