[#BloombergLP-bdld-DatumArrayRef]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdld.adoc[bdld]::DatumArrayRef
:relfileprefix: ../../
:mrdocs:

This `class` provides a read&hyphen;only view to an array of datums&period; It holds the array by a `const` pointer and an integral length value&period; It acts as return value for accessors inside the `Datum` class that return an array of datums&period; Note that zero&hyphen;length arrays are valid&period;

== Synopsis

Declared in `&lt;bdld&lowbar;datum&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
class DatumArrayRef;
----

== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdld/DatumArrayRef/SizeType.adoc[`SizeType`] 
| `SizeType` is an alias for an unsigned integral value, representing the length of a datum array&period;
| xref:BloombergLP/bdld/DatumArrayRef/const_iterator.adoc[`const&lowbar;iterator`] 
| Const iterator for this array reference&period;
| xref:BloombergLP/bdld/DatumArrayRef/const_pointer.adoc[`const&lowbar;pointer`] 
| Const pointer to an element&period;
| xref:BloombergLP/bdld/DatumArrayRef/const_reference.adoc[`const&lowbar;reference`] 
| Const reference to an element&period;
| xref:BloombergLP/bdld/DatumArrayRef/const_reverse_iterator.adoc[`const&lowbar;reverse&lowbar;iterator`] 
| Const reverse iterator for this array reference&period;
| xref:BloombergLP/bdld/DatumArrayRef/difference_type.adoc[`difference&lowbar;type`] 
| Iterator difference type for this array reference&period;
| xref:BloombergLP/bdld/DatumArrayRef/element_type.adoc[`element&lowbar;type`] 
| This `typedef` is an alias for `element&lowbar;type`&period;
| xref:BloombergLP/bdld/DatumArrayRef/iterator.adoc[`iterator`] 
| Iterator for this array reference&period;
| xref:BloombergLP/bdld/DatumArrayRef/pointer.adoc[`pointer`] 
| Pointer to an element&period;
| xref:BloombergLP/bdld/DatumArrayRef/reference.adoc[`reference`] 
| Reference to an element&period;
| xref:BloombergLP/bdld/DatumArrayRef/reverse_iterator.adoc[`reverse&lowbar;iterator`] 
| Reverse iterator for this array reference&period;
| xref:BloombergLP/bdld/DatumArrayRef/size_type.adoc[`size&lowbar;type`] 
| Size type for this array reference&period;
| xref:BloombergLP/bdld/DatumArrayRef/value_type.adoc[`value&lowbar;type`] 
| Value type for this array reference&period;
|===


== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdld/DatumArrayRef/2constructor-09.adoc[`DatumArrayRef`]         [.small]#[constructor]#
| Constructors
| xref:BloombergLP/bdld/DatumArrayRef/back.adoc[`back`] 
| Return a reference providing non&hyphen;modifiable access to the last element of the array this reference object represents&period; The behavior is undefined unless `size() &gt; 0`&period;
| xref:BloombergLP/bdld/DatumArrayRef/begin.adoc[`begin`] 
| Return an iterator providing non&hyphen;modifiable access to the first element of the array this reference object represents&period;
| xref:BloombergLP/bdld/DatumArrayRef/cbegin.adoc[`cbegin`] 
| Return an iterator providing non&hyphen;modifiable access to the first element of the array this reference object represents&semi; return a past&hyphen;the&hyphen;end iterator if `size() &equals;&equals; 0`&period;
| xref:BloombergLP/bdld/DatumArrayRef/cend.adoc[`cend`] 
| Return an iterator providing non&hyphen;modifiable access pointing past&hyphen;the&hyphen;end of the array this reference object represents&period;
| xref:BloombergLP/bdld/DatumArrayRef/crbegin.adoc[`crbegin`] 
| Return a reverse iterator providing non&hyphen;modifiable access to the last element of the array this reference object represents, and the past&hyphen;the&hyphen;end reverse iterator if `size() &equals;&equals; 0`&period;
| xref:BloombergLP/bdld/DatumArrayRef/crend.adoc[`crend`] 
| Return a reverse iterator providing non&hyphen;modifiable access pointing past&hyphen;the&hyphen;end of the array this reference object represents&period;
| xref:BloombergLP/bdld/DatumArrayRef/data.adoc[`data`] 
| Return the address providing non&hyphen;modifiable access to the first element of the array this reference object represents&period; Return a valid pointer which cannot be dereferenced if the `size() &equals;&equals; 0`&period;
| xref:BloombergLP/bdld/DatumArrayRef/empty.adoc[`empty`] 
| Return `size() &equals;&equals; 0`&period;
| xref:BloombergLP/bdld/DatumArrayRef/end.adoc[`end`] 
| Return a past&hyphen;the&hyphen;end iterator for this array reference&period;
| xref:BloombergLP/bdld/DatumArrayRef/front.adoc[`front`] 
| Return a reference providing non&hyphen;modifiable access to the first element of the array this reference object represents&period; The behavior is undefined unless `size() &gt; 0`&period;
| xref:BloombergLP/bdld/DatumArrayRef/length.adoc[`length`] 
| Return a const pointer to the length of the array&period;
| xref:BloombergLP/bdld/DatumArrayRef/operator_subs.adoc[`operator&lsqb;&rsqb;`] 
| Return a reference providing non&hyphen;modifiable access to the element at the specified `position` in the array this reference object represents&period; The behavior is undefined unless `position &lt; size()`&period;
| xref:BloombergLP/bdld/DatumArrayRef/print.adoc[`print`] 
| Write the value of this object to the specified output `stream` in a human&hyphen;readable format, and return a reference to the modifiable `stream`&period; Optionally specify an initial indentation `level`, whose absolute value is incremented recursively for nested objects&period; If `level` is specified, optionally specify `spacesPerLevel`, whose absolute value indicates the number of spaces per indentation level for this and all of its nested objects&period; If `level` is negative, suppress indentation of the first line&period; If `spacesPerLevel` is negative, format the entire output on one line, suppressing all but the initial indentation (as governed by `level`)&period; If `stream` is not valid on entry, this operation has no effect&period; Note that this human&hyphen;readable format is not fully specified, and can change without notice&period;
| xref:BloombergLP/bdld/DatumArrayRef/rbegin.adoc[`rbegin`] 
| Return a reverse iterator to the last element of this array reference&period;
| xref:BloombergLP/bdld/DatumArrayRef/rend.adoc[`rend`] 
| Return a past&hyphen;the&hyphen;end reverse iterator for this array reference&period;
| xref:BloombergLP/bdld/DatumArrayRef/size.adoc[`size`] 
| Return a const&hyphen;pointer to the number of elements of the array this reference object represents&period;
| xref:BloombergLP/bdld/DatumArrayRef/2conversion.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration&lt;DatumArrayRef, HasPrintMethod&gt;`] 
| `DatumArrayRef` is trivially copyable&period;
|===


== Non-Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdld/operator_not_eq-0c.adoc[`operator!&equals;`]
| Return `true` if the specified `lhs` and `rhs` have different values, and `false` otherwise&period; Two `DatumArrayRef` objects have different values if they hold arrays of different lengths or invoking operator `&equals;&equals;` returns false for at least one of the corresponding elements in the arrays&period;
| xref:BloombergLP/bdld/operator_eq-07.adoc[`operator&equals;&equals;`]
| Return `true` if the specified `lhs` and `rhs` have the same value, and `false` otherwise&period; Two `DatumArrayRef` objects have the same value if they hold arrays of the same length and all the corresponding `Datum` objects in the two arrays also compare equal&period;
|===


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