[#BloombergLP-bdlb-VariantImp-apply-0e2]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlb.adoc[bdlb]::xref:BloombergLP/bdlb/VariantImp.adoc[VariantImp]::apply
:relfileprefix: ../../../
:mrdocs:

Apply the specified `visitor` to this variant by passing the value (of template parameter `TYPE`) this variant currently holds to the `visitor` object&apos;s `operator()`, and return the value returned by the `visitor`&period; If this variant is unset, the specified `defaultValue` of template parameter `TYPE` is passed to the `visitor`&period; `TYPE` must be the same as one of the types that this variant can hold&period; The behavior is undefined unless this variant is unset or holds a value of template parameter `TYPE`&period; Note that this method is selected only if the template parameter type `VISITOR` defines a `typedef` of `ResultType` in its public interface&period; Also note that this method is defined inline to work around a Windows compiler bug with SFINAE functions&period;

== Synopsis

Declared in `&lt;bdlb&lowbar;variant&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class VISITOR,
    class TYPE&gt;
VISITOR::ResultType
apply(
    VISITOR& visitor,
    TYPE const& defaultValue) const
requires Variant&lowbar;ReturnValueHelper&lt;VISITOR&gt;&colon;&colon;value &equals;&equals; 1;
----


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