xref: /src/lib/libutil++/freebsd__stringf.3 (revision 159503125826bc2d3b988921e7e85735ee09ad46)
1*b3127a2dSJohn Baldwin.\"
2*b3127a2dSJohn Baldwin.\" SPDX-License-Identifier: BSD-2-Clause
3*b3127a2dSJohn Baldwin.\"
4*b3127a2dSJohn Baldwin.\" Copyright (c) 2025 Chelsio Communications, Inc.
5*b3127a2dSJohn Baldwin.\" Written by: John Baldwin <jhb@FreeBSD.org>
6*b3127a2dSJohn Baldwin.\"
7*b3127a2dSJohn Baldwin.Dd July 31, 2025
8*b3127a2dSJohn Baldwin.Dt FREEBSD::STRINGF 3
9*b3127a2dSJohn Baldwin.Os
10*b3127a2dSJohn Baldwin.Sh NAME
11*b3127a2dSJohn Baldwin.Nm freebsd::stringf
12*b3127a2dSJohn Baldwin.Nd build a std::string using stdio formatting
13*b3127a2dSJohn Baldwin.Sh LIBRARY
14*b3127a2dSJohn Baldwin.Lb libutil++
15*b3127a2dSJohn Baldwin.Sh SYNOPSIS
16*b3127a2dSJohn Baldwin.In libutil++.hh
17*b3127a2dSJohn Baldwin.Ft std::string
18*b3127a2dSJohn Baldwin.Fn freebsd::stringf "const char *fmt" "..."
19*b3127a2dSJohn Baldwin.Ft std::string
20*b3127a2dSJohn Baldwin.Fn freebsd::stringf "const char *fmt" "va_list ap"
21*b3127a2dSJohn Baldwin.Sh DESCRIPTION
22*b3127a2dSJohn BaldwinThese functions construct a
23*b3127a2dSJohn Baldwin.Vt std::string
24*b3127a2dSJohn Baldwinobject containing a formatted string.
25*b3127a2dSJohn BaldwinThe output of the string is dictated by the
26*b3127a2dSJohn Baldwin.Fa fmt
27*b3127a2dSJohn Baldwinargument and additional arguments using the same conventions documented in
28*b3127a2dSJohn Baldwin.Xr printf 3 .
29*b3127a2dSJohn BaldwinThe first form provides functionality similar to
30*b3127a2dSJohn Baldwin.Xr asprintf 3
31*b3127a2dSJohn Baldwinand the second form is similar to
32*b3127a2dSJohn Baldwin.Xr vasprintf 3 .
33*b3127a2dSJohn Baldwin.Sh RETURN VALUES
34*b3127a2dSJohn BaldwinThese functions return a std::string object.
35*b3127a2dSJohn Baldwin.Sh EXCEPTIONS
36*b3127a2dSJohn BaldwinThese functions may throw one of the following exceptions:
37*b3127a2dSJohn Baldwin.Bl -tag -width Er
38*b3127a2dSJohn Baldwin.It Bq Er std::bad_alloc
39*b3127a2dSJohn BaldwinFailed to allocate memory.
40*b3127a2dSJohn Baldwin.It Bq Er std::length_error
41*b3127a2dSJohn BaldwinThe result would exceeed the maximum possible string size.
42*b3127a2dSJohn Baldwin.El
43*b3127a2dSJohn Baldwin.Sh EXAMPLES
44*b3127a2dSJohn Baldwin.Bd -literal -offset indent
45*b3127a2dSJohn Baldwinstd::string s = freebsd::stringf("hello %s", "world");
46*b3127a2dSJohn Baldwin.Ed
47*b3127a2dSJohn Baldwin.Sh SEE ALSO
48*b3127a2dSJohn Baldwin.Xr asprintf 3
49