[#BloombergLP-bslfmt-basic_format_arg-05]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslfmt.adoc[bslfmt]::xref:BloombergLP/bslfmt/basic_format_arg-0d.adoc[basic&lowbar;format&lowbar;arg]&lt;xref:BloombergLP/bslfmt/basic_format_context.adoc[basic&lowbar;format&lowbar;context&lt;t&lowbar;OUT, t&lowbar;CHAR&gt;]&gt;
:relfileprefix: ../../
:mrdocs:

This class provides an STL&hyphen;compliant `basic&lowbar;format&lowbar;arg` which holds (by value for scalar and pointer types, by reference for user&hyphen;defined types)&period; These types should not be constructed directly by the user&period;

== Synopsis

Declared in `&lt;bslfmt&lowbar;format&lowbar;arg&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class t&lowbar;OUT,
    class t&lowbar;CHAR&gt;
class xref:BloombergLP/bslfmt/basic_format_arg-0d.adoc[basic&lowbar;format&lowbar;arg]&lt;xref:BloombergLP/bslfmt/basic_format_context.adoc[basic&lowbar;format&lowbar;context&lt;t&lowbar;OUT, t&lowbar;CHAR&gt;]&gt;;
----

== Types

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslfmt/basic_format_arg-05/handle.adoc[`handle`] 
| This class provides a type&hyphen;erased wrapper which holds a pointer to a user&hyphen;defined type and permits its formatting using the appropriate bsl&colon;&colon;formatter type&period;
|===


== Type Aliases

[cols="1"]
|===
| Name
| xref:BloombergLP/bslfmt/basic_format_arg-05/BoolType.adoc[`BoolType`] 
| xref:BloombergLP/bslfmt/basic_format_arg-05/UnspecifiedBoolType.adoc[`UnspecifiedBoolType`] 
|===


== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslfmt/basic_format_arg-05/2constructor.adoc[`basic&lowbar;format&lowbar;arg`]         [.small]#[constructor]#
| Create a `basic&lowbar;format&lowbar;arg` which holds a `bsl&colon;&colon;monostate`&period;
| xref:BloombergLP/bslfmt/basic_format_arg-05/visit.adoc[`visit`] 
| Invoke the specified `visitor` functor on the value contained by this object, providing that functor non&hyphen;modifiable access to that value&period; `visitor` must be a `variant`&hyphen;style functor that is able to visit all supported types listed in the &lcub;DESCRIPTION&rcub;&period;
| xref:BloombergLP/bslfmt/basic_format_arg-05/2conversion.adoc[`operator BoolType`] 
| Return whether this object holds a value&period;
|===


== Friends

[cols="1,4"]
|===
| Name| Description
| `xref:BloombergLP/bslfmt/swap.adoc[BloombergLP::bslfmt::swap]`
| Exchange the values of the specified `lhs` and `rhs`&period;
| `xref:BloombergLP/bslfmt/Format_ArgUtil.adoc[BloombergLP::bslfmt::Format&lowbar;ArgUtil]`
| This class provides utility functions to enable manipulation of types declared by this component&period; It is solely for private use by other components of the `bslfmt` package and should not be used directly&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
