[#BloombergLP-bdljsn-Json_VisitUtil-invokeVisitor-060]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdljsn.adoc[bdljsn]::xref:BloombergLP/bdljsn/Json_VisitUtil.adoc[Json&lowbar;VisitUtil]::invokeVisitor
:relfileprefix: ../../../
:mrdocs:

`invokeVisitor` overloads

== Synopses

Declared in `&lt;bdljsn&lowbar;json&period;h&gt;`

Same as the related overload above for `invokeVisitor`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class VISITOR,
    class ARGUMENT&gt;
static
decltype(auto)
xref:BloombergLP/bdljsn/Json_VisitUtil/invokeVisitor-04.adoc[invokeVisitor](
    xref:BloombergLP/bslmf/MovableRef_Deduced.adoc[BloombergLP::bslmf::MovableRef&lowbar;Deduced&lt;VISITOR&gt;] visitor,
    ARGUMENT const& argument);
----

[.small]#xref:BloombergLP/bdljsn/Json_VisitUtil/invokeVisitor-04.adoc[_» more&period;&period;&period;_]#

Same as the overload taking a `const VISITOR&amp;`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class VISITOR,
    class ARGUMENT&gt;
static
decltype(auto)
xref:BloombergLP/bdljsn/Json_VisitUtil/invokeVisitor-05.adoc[invokeVisitor](
    VISITOR const& visitor,
    ARGUMENT const& argument);
----

[.small]#xref:BloombergLP/bdljsn/Json_VisitUtil/invokeVisitor-05.adoc[_» more&period;&period;&period;_]#

Same as the related overload above for `invokeVisitor`&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class RETURN&lowbar;TYPE,
    class VISITOR,
    class ARGUMENT&gt;
static
RETURN&lowbar;TYPE
xref:BloombergLP/bdljsn/Json_VisitUtil/invokeVisitor-063.adoc[invokeVisitor](
    xref:BloombergLP/bslmf/MovableRef_Deduced.adoc[BloombergLP::bslmf::MovableRef&lowbar;Deduced&lt;VISITOR&gt;] visitor,
    ARGUMENT const& argument);
----

[.small]#xref:BloombergLP/bdljsn/Json_VisitUtil/invokeVisitor-063.adoc[_» more&period;&period;&period;_]#

Same as the overload taking a `VISITOR` pointer&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class RETURN&lowbar;TYPE,
    class VISITOR,
    class ARGUMENT&gt;
static
RETURN&lowbar;TYPE
xref:BloombergLP/bdljsn/Json_VisitUtil/invokeVisitor-0d.adoc[invokeVisitor](
    VISITOR& visitor,
    ARGUMENT const& argument);
----

[.small]#xref:BloombergLP/bdljsn/Json_VisitUtil/invokeVisitor-0d.adoc[_» more&period;&period;&period;_]#

Same as the overload taking a `VISITOR` pointer&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class RETURN&lowbar;TYPE,
    class VISITOR,
    class ARGUMENT&gt;
static
RETURN&lowbar;TYPE
xref:BloombergLP/bdljsn/Json_VisitUtil/invokeVisitor-09.adoc[invokeVisitor](
    VISITOR const& visitor,
    ARGUMENT const& argument);
----

[.small]#xref:BloombergLP/bdljsn/Json_VisitUtil/invokeVisitor-09.adoc[_» more&period;&period;&period;_]#

Invoke the specified `visitor` (callable object) with the specified `argument` and return the computed value of (template parameter) the `RETURN&lowbar;TYPE`&period; Note that in typical use, `argument` has the current value and type of a `Json` object&period;


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class RETURN&lowbar;TYPE,
    class VISITOR,
    class ARGUMENT&gt;
static
RETURN&lowbar;TYPE
xref:BloombergLP/bdljsn/Json_VisitUtil/invokeVisitor-02.adoc[invokeVisitor](
    VISITOR* visitor,
    ARGUMENT const& argument);
----

[.small]#xref:BloombergLP/bdljsn/Json_VisitUtil/invokeVisitor-02.adoc[_» more&period;&period;&period;_]#


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