[#BloombergLP-bdlat_SequenceFunctions]
= xref:BloombergLP.adoc[BloombergLP]::bdlat&lowbar;SequenceFunctions
:relfileprefix: ../
:mrdocs:

This `namespace` provides methods that expose &quot;sequence&quot; behavior for &quot;sequence&quot; types&period; See the component&hyphen;level documentation for more information&period;

== Types

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdlat_SequenceFunctions/IsSequence-0a.adoc[`IsSequence`] 
| This `struct` should be specialized for third&hyphen;party types that need to expose &quot;sequence&quot; behavior&period; See the component&hyphen;level documentation for further information&period;
|===


== Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdlat_SequenceFunctions/accessAttribute-06.adoc[`accessAttribute`] 
| `accessAttribute` overloads
| xref:BloombergLP/bdlat_SequenceFunctions/accessAttributes.adoc[`accessAttributes`] 
| Invoke the specified `accessor` sequentially on each attribute of the specified `object`, supplying `accessor` with the corresponding attribute information structure until such invocation returns a non&hyphen;zero value&period; The supplied `accessor` must be a callable type that can be called as if it had the following signature&colon; &grave; template &lt;class t&lowbar;INFO&gt; int accessor(const ATTRIBUTE&lowbar;TYPE&amp; attribute, const t&lowbar;INFO&amp; info)&semi; &grave; Return the value from the last invocation of `accessor` (i&period;e&period;, the invocation that terminated the sequence)&period;
| xref:BloombergLP/bdlat_SequenceFunctions/bdlat_sequenceAccessAttribute-0e.adoc[`bdlat&lowbar;sequenceAccessAttribute`] 
| `bdlat&lowbar;sequenceAccessAttribute` overloads
| xref:BloombergLP/bdlat_SequenceFunctions/bdlat_sequenceAccessAttributes.adoc[`bdlat&lowbar;sequenceAccessAttributes`] 
| Default customization&hyphen;point implementation of `accessAttributes`&period;
| xref:BloombergLP/bdlat_SequenceFunctions/bdlat_sequenceHasAttribute-0f.adoc[`bdlat&lowbar;sequenceHasAttribute`] 
| `bdlat&lowbar;sequenceHasAttribute` overloads
| xref:BloombergLP/bdlat_SequenceFunctions/bdlat_sequenceManipulateAttribute-09.adoc[`bdlat&lowbar;sequenceManipulateAttribute`] 
| `bdlat&lowbar;sequenceManipulateAttribute` overloads
| xref:BloombergLP/bdlat_SequenceFunctions/bdlat_sequenceManipulateAttributes.adoc[`bdlat&lowbar;sequenceManipulateAttributes`] 
| Default customization&hyphen;point implementation of `manipulateAttributes`&period;
| xref:BloombergLP/bdlat_SequenceFunctions/hasAttribute-099.adoc[`hasAttribute`] 
| `hasAttribute` overloads
| xref:BloombergLP/bdlat_SequenceFunctions/manipulateAttribute-04.adoc[`manipulateAttribute`] 
| `manipulateAttribute` overloads
| xref:BloombergLP/bdlat_SequenceFunctions/manipulateAttributes.adoc[`manipulateAttributes`] 
| Invoke the specified `manipulator` sequentially on the address of each (modifiable) attribute of the specified `object`, supplying `manipulator` with the corresponding attribute information structure until such invocation returns non&hyphen;zero value&period; The supplied `manipulator` must be a callable type that can be called as if it had the following signature&colon; &grave; template &lt;class t&lowbar;INFO&gt; int manipulator(ATTRIBUTE&lowbar;TYPE &ast;attribute, const t&lowbar;INFO&amp; info)&semi; &grave; Return the value from the last invocation of `manipulator` (i&period;e&period;, the invocation that terminated the sequence)&period;
|===



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