[#BloombergLP-bdlb-Variant19-applyRaw]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlb.adoc[bdlb]::xref:BloombergLP/bdlb/Variant19.adoc[Variant19]::applyRaw
:relfileprefix: ../../../
:mrdocs:

`applyRaw` overloads

== Synopses

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

Apply the specified `visitor` to this modifiable 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; The behavior is undefined if this variant is unset&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;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class VISITOR&gt;
VISITOR::ResultType
xref:BloombergLP/bdlb/VariantImp/applyRaw-026.adoc[applyRaw](VISITOR& visitor)
requires Variant&lowbar;ReturnValueHelper&lt;VISITOR&gt;&colon;&colon;value &equals;&equals; 1;
----

[.small]#xref:BloombergLP/bdlb/VariantImp/applyRaw-026.adoc[_» more&period;&period;&period;_]#

Apply the specified `visitor` to this variant by passing the value this variant currently holds to the `visitor` object&apos;s `operator()`, and return the value (of template parameter `RET&lowbar;TYPE`) returned by the `visitor`&period; The behavior is undefined if this variant is unset&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;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class VISITOR&gt;
VISITOR::ResultType
xref:BloombergLP/bdlb/VariantImp/applyRaw-0b8.adoc[applyRaw](VISITOR& visitor) const
requires Variant&lowbar;ReturnValueHelper&lt;VISITOR&gt;&colon;&colon;value &equals;&equals; 1;
----

[.small]#xref:BloombergLP/bdlb/VariantImp/applyRaw-0b8.adoc[_» more&period;&period;&period;_]#

Apply the specified `visitor` to this modifiable 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; The behavior is undefined if this variant is unset&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;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class VISITOR&gt;
VISITOR::ResultType
xref:BloombergLP/bdlb/VariantImp/applyRaw-01.adoc[applyRaw](VISITOR const& visitor)
requires Variant&lowbar;ReturnValueHelper&lt;VISITOR&gt;&colon;&colon;value &equals;&equals; 1;
----

[.small]#xref:BloombergLP/bdlb/VariantImp/applyRaw-01.adoc[_» more&period;&period;&period;_]#

Apply the specified `visitor` to this variant by passing the value this variant currently holds to the `visitor` object&apos;s `operator()`, and return the value returned by the `visitor`&period; The behavior is undefined if this variant is unset&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;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class VISITOR&gt;
VISITOR::ResultType
xref:BloombergLP/bdlb/VariantImp/applyRaw-0c9.adoc[applyRaw](VISITOR const& visitor) const
requires Variant&lowbar;ReturnValueHelper&lt;VISITOR&gt;&colon;&colon;value &equals;&equals; 1;
----

[.small]#xref:BloombergLP/bdlb/VariantImp/applyRaw-0c9.adoc[_» more&period;&period;&period;_]#

Apply the specified `visitor` to this modifiable variant by passing the value this variant currently holds to the `visitor` object&apos;s `operator()`, and return the value (of template parameter `RET&lowbar;TYPE`) returned by the `visitor`&period; The behavior is undefined if this variant is unset&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class RET&lowbar;TYPE,
    class VISITOR&gt;
RET&lowbar;TYPE
xref:BloombergLP/bdlb/VariantImp/applyRaw-0c1.adoc[applyRaw](VISITOR& visitor);
----

[.small]#xref:BloombergLP/bdlb/VariantImp/applyRaw-0c1.adoc[_» more&period;&period;&period;_]#

Apply the specified `visitor` to this variant by passing the value this variant currently holds to the `visitor` object&apos;s `operator()`, and return the value (of template parameter `RET&lowbar;TYPE`) returned by the `visitor`&period; The behavior is undefined if this variant is unset&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class RET&lowbar;TYPE,
    class VISITOR&gt;
RET&lowbar;TYPE
xref:BloombergLP/bdlb/VariantImp/applyRaw-0bc.adoc[applyRaw](VISITOR& visitor) const;
----

[.small]#xref:BloombergLP/bdlb/VariantImp/applyRaw-0bc.adoc[_» more&period;&period;&period;_]#

Same as the preceding overload, but for a `const` visitor&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class RET&lowbar;TYPE,
    class VISITOR&gt;
RET&lowbar;TYPE
xref:BloombergLP/bdlb/VariantImp/applyRaw-0c8.adoc[applyRaw](VISITOR const& visitor);
----

[.small]#xref:BloombergLP/bdlb/VariantImp/applyRaw-0c8.adoc[_» more&period;&period;&period;_]#

Same as the preceding overload, but for a `const` visitor&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class RET&lowbar;TYPE,
    class VISITOR&gt;
RET&lowbar;TYPE
xref:BloombergLP/bdlb/VariantImp/applyRaw-06.adoc[applyRaw](VISITOR const& visitor) const;
----

[.small]#xref:BloombergLP/bdlb/VariantImp/applyRaw-06.adoc[_» more&period;&period;&period;_]#


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