File: autosprintf.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir) GNU autosprintf *************** This manual documents the GNU autosprintf class, version 1.0. * Menu: * Introduction:: Introduction * Class autosprintf:: The 'autosprintf' class * Using autosprintf:: Using 'autosprintf' in own programs File: autosprintf.info, Node: Introduction, Next: Class autosprintf, Prev: Top, Up: Top 1 Introduction ************** This package makes the C formatted output routines ('fprintf' et al.) usable in C++ programs, for use with the '<string>' strings and the '<iostream>' streams. It allows to write code like cerr << autosprintf ("syntax error in %s:%d: %s", filename, line, errstring); instead of cerr << "syntax error in " << filename << ":" << line << ": " << errstring; The benefits of the autosprintf syntax are: * It reuses the standard POSIX printf facility. Easy migration from C to C++. * English sentences are kept together. * It makes internationalization possible. Internationalization requires format strings, because in some cases the translator needs to change the order of a sentence, and more generally it is easier for the translator to work with a single string for a sentence than with multiple string pieces. * It reduces the risk of programming errors due to forgotten state in the output stream (e.g. 'cout << hex;' not followed by 'cout << dec;'). File: autosprintf.info, Node: Class autosprintf, Next: Using autosprintf, Prev: Introduction, Up: Top 2 The 'autosprintf' class ************************* An instance of class 'autosprintf' just contains a string with the formatted output result. Such an instance is usually allocated as an automatic storage variable, i.e. on the stack, not with 'new' on the heap. The constructor 'autosprintf (const char *format, ...)' takes a format string and additional arguments, like the C function 'printf'. Conversions to 'char *' and 'std::string' are defined that return the encapsulated string. The conversion to 'char *' returns a freshly allocated copy of the encapsulated string; it needs to be freed using 'delete[]'. The conversion to 'std::string' returns a copy of the encapsulated string, with automatic memory management. The destructor '~autosprintf ()' destroys the encapsulated string. An 'operator <<' is provided that outputs the encapsulated string to the given 'ostream'. File: autosprintf.info, Node: Using autosprintf, Prev: Class autosprintf, Up: Top 3 Using 'autosprintf' in own programs ************************************* To use the 'autosprintf' class in your programs, you need to add #include "autosprintf.h" using gnu::autosprintf; to your source code. The include file defines the class 'autosprintf', in a namespace called 'gnu'. The 'using' statement makes it possible to use the class without the (otherwise natural) 'gnu::' prefix. When linking your program, you need to link with 'libasprintf', because that's where the class is defined. In projects using GNU 'autoconf', this means adding 'AC_LIB_LINKFLAGS([asprintf])' to 'configure.in' or 'configure.ac', and using the @LIBASPRINTF@ Makefile variable that it provides.
Generated by $Id: phpMan.php,v 4.55 2007/09/05 04:42:51 chedong Exp $ Author: Che Dong
On Apache
Under GNU General Public License
2024-11-23 02:34 @3.135.206.166 CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)