29/// * <a href="#bsla_printf-example-1-printf-like-function-that-returns-a-bsl-string-by-value"> Example 1: printf-Like Function That Returns a bsl::string by Value </a>
30///
31/// # Purpose {#bsla_printf-purpose}
32/// Provide a macro to indicate `printf`-style arguments.
33///
34/// # Macros {#bsla_printf-macros}
35///
36/// - BSLA_PRINTF(FMTIDX, STARTIDX): validate `printf` format and arguments
37/// - BSLA_PRINTF_IS_ACTIVE: defined if `BSLA_PRINTF` is active
38///
39/// @see bsla_annotations
40///
41/// # Description {#bsla_printf-description}
42/// This component provides a preprocessor macro that allows the
43/// designation of a given function argument as a `printf`-style format string,
44/// and arguments starting at a certain index in the argument list to be
64/// The macro `BSLA_PRINTF_IS_ACTIVE` is defined if `BSLA_PRINTF` expands
65/// to something with the desired effect; otherwise `BSLA_PRINTF_IS_ACTIVE`
66/// is not defined and `BSLA_PRINTF` expands to nothing.
67///
68/// ## Usage {#bsla_printf-usage}
69///
70///
71/// This section illustrates intended use of this component.
72///
73/// ### Example 1: printf-Like Function That Returns a bsl::string by Value {#bsla_printf-example-1-printf-like-function-that-returns-a-bsl-string-by-value}
74///
75///
76/// First, we define a function, `strPrintf`, that takes a variable number of
77/// arguments. The second argument is the format string, and we annotate it