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