[#BloombergLP-bdlat-ArrayUtil-manipulateElementByCategory]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlat.adoc[bdlat]::xref:BloombergLP/bdlat/ArrayUtil.adoc[ArrayUtil]::manipulateElementByCategory
:relfileprefix: ../../../
:mrdocs:

Invoke the specified `manipulator` on the address of the element at the specified `index` of the specified `array` and on a prvalue of the category tag type for the dynamic category of the element&period; See &lcub;`bdlat&lowbar;typecategory`&verbar;Category Tags and Enumerators&rcub; for documentation about category tags&period; Return the value from the invocation of `manipulator`&period; The `manipulator` must be a manipulator functor&period; See &lcub;`bdlat&lowbar;typecategory`&verbar;`MANIPULATOR` Functors&rcub; for the requirements on `manipulator`&period; The behavior is undefined unless `0 &lt;&equals; index &lt; bdlat&lowbar;ArrayFunctions&colon;&colon;size(array)`&period;

== Synopsis

Declared in `&lt;bdlat&lowbar;arrayutil&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class TYPE,
    class MANIPULATOR&gt;
static
int
manipulateElementByCategory(
    TYPE* array,
    MANIPULATOR& manipulator,
    int index);
----


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