Copyright (C) 2002-2003, 2006-2007 Free Software Foundation, Inc.
This manual is free documentation. It is dually licensed under the GNU FDL and the GNU GPL. This means that you can redistribute this manual under either of these two licenses, at your choice.
This manual is covered by the GNU FDL. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License (FDL), either version 1.2 of the License, or (at your option) any later version published by the Free Software Foundation (FSF); with no Invariant Sections, with no Front-Cover Text, and with no Back-Cover Texts. A copy of the license is at http://www.gnu.org/licenses/fdl.html.
This manual is covered by the GNU GPL. You can redistribute it and/or modify it under the terms of the GNU General Public License (GPL), either version 2 of the License, or (at your option) any later version published by the Free Software Foundation (FSF). A copy of the license is at http://www.gnu.org/licenses/gpl.html.
This package makes the C formatted output routines (
fprintf et al.)
usable in C++ programs, for use with the
<string> strings and the
It allows to write code like
cerr << autosprintf ("syntax error in %s:%d: %s", filename, line, errstring);
cerr << "syntax error in " << filename << ":" << line << ": " << errstring;
The benefits of the autosprintf syntax are:
cout << hex;not followed by
cout << dec;).
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
autosprintf (const char *format, ...) takes a format
string and additional arguments, like the C function
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.
~autosprintf () destroys the encapsulated string.
operator << is provided that outputs the encapsulated string to the
autosprintfin 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)
When linking your program, you need to link with
that's where the class is defined. In projects using GNU
this means adding ‘AC_LIB_LINKFLAGS([asprintf])’ to
configure.ac, and using the @LIBASPRINTF@ Makefile variable that
This document was generated on 1 September 2007 using the texi2html translator version 1.52b.