My favorites | Sign in
Project Home Downloads Wiki Issues Source
READ-ONLY: This project has been archived. For more information see this post.
Project Information
Members

mprintf is an open source (ZLIB License) set of replacement functions for the standard C++ Run-Time Library formatted output functions printf() / fprintf() / sprintf() / snprintf().

Why might you be interested in mprintf?

Do you do a lot of localization?

Do you compile the same code for 32-bit and 64-bit targets?

Do end users modify output text in your data files and cause security holes?

Do you compile a lot of code for multiple platforms?

Is your code really careful about memory allocation?

Do you hate middleware or libraries that forces you to edit or change existing code?

If you answered "Yes" to any of the above, you might want to look at mprintf.

mprintf's routines provides full argument checking/type-safety, enhanced security, automatic 32/64-bit compatibility without changing format specifiers, and bit-level output consistency across multiple platforms and compilers.

mprintf adds additional features to the standard routines including out-of-order and repeated argument access, additional formatted conversions (bool, binary, 'wildcard' default, wchar_t to char, and others), additional conversion flags (group separation), and support for additional intrinsic and user-defined types, including bool, SIMD types, and the ability to add direct recognition and support of end-user types such as fixed-point, String objects, and so on.

mprintf's routines are 100% compatible to the ISO/IEC C++ Language specification

mprintf can be added to your existing project and existing code can be switched over to use mprintf with as little as adding a single #include and recompiling. mprintf can be easily configured to emulate the language spec deviations and quirks of various compiler's RTL implementations.

mprintf's routines are fully thread-safe, perform no dynamic memory allocation, and do not use the compiler's RTL routines for any formatting.

mprintf supplies additional functions which can determine the exact size of formatted output without performing any formatting, and can check and validate format specifier strings for error-free operation prior to their usage (very useful for validating externally loaded strings).

mprintf's detailed error and warning reporting can easily be connected to host error handlers for consistency.

mprintf's code is easy to follow, and extensively commented, making it easy to further extend and enhance it's capabilities to fit specific situations.


17 March 2013

No source update this week. A significant amount of documentation has been written since the 0.82 release, and several edge issues have been identified after a careful re-reading of the ISO Language Spec. I've added those issues to mprtinf's compliance list and will also document where various compiler RTL implementations have compliance issues.

3 March 2013 - version 0.82 (weekly project update)

ver 0.82 release notes:

  • updated configuration macro usage / configuration
  • replaced output forwarding calls for mfprinf() & mprintf() to use fwrite()
  • minor code tweaks
  • quick setup guide cleaned up and edited

Tested on: MSVC 2005, MSVC 2010, XCode 4.6


25 February 2013 - version 0.80 (Initial limited public feedback release) available for download.

Tested on: MSVC 2005, MSVC 2010, XCode 4.6

Powered by Google Project Hosting