[#BloombergLP-bdlt-PackedCalendar_HolidayConstIterator]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlt.adoc[bdlt]::PackedCalendar&lowbar;HolidayConstIterator
:relfileprefix: ../../
:mrdocs:

Provide read&hyphen;only, sequential access in increasing (chronological) order to the holidays in a `PackedCalendar` object&period; This class owns an iterator into the `bdlc&colon;&colon;PackedIntArray` storing the holiday offsets of the referenced `bdlt&colon;&colon;PackedCalendar` and a date, `d&lowbar;firstDate`, to convert the offsets into dates corresponding to holidays&period;

== Synopsis

Declared in `&lt;bdlt&lowbar;packedcalendar&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
class PackedCalendar&lowbar;HolidayConstIterator;
----

== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdlt/PackedCalendar_HolidayConstIterator/difference_type.adoc[`difference&lowbar;type`] 
| Iterator difference type&period;
| xref:BloombergLP/bdlt/PackedCalendar_HolidayConstIterator/iterator_category.adoc[`iterator&lowbar;category`] 
| Iterator category for this holiday iterator&period;
| xref:BloombergLP/bdlt/PackedCalendar_HolidayConstIterator/pointer.adoc[`pointer`] 
| Iterator pointer type&period;
| xref:BloombergLP/bdlt/PackedCalendar_HolidayConstIterator/reference.adoc[`reference`] 
| The star operator returns a `PackedCalendar&lowbar;DateRef` _by_ _value_&period;
| xref:BloombergLP/bdlt/PackedCalendar_HolidayConstIterator/value_type.adoc[`value&lowbar;type`] 
| Iterator value type&period;
|===


== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdlt/PackedCalendar_HolidayConstIterator/2constructor-0d.adoc[`PackedCalendar&lowbar;HolidayConstIterator`]         [.small]#[constructor]#
| Create an iterator having the value of the specified `original` iterator&period;
| xref:BloombergLP/bdlt/PackedCalendar_HolidayConstIterator/2destructor.adoc[`&#126;PackedCalendar&lowbar;HolidayConstIterator`] [.small]#[destructor]#
| Destroy this object&period;
| xref:BloombergLP/bdlt/PackedCalendar_HolidayConstIterator/operator_assign.adoc[`operator&equals;`] 
| Assign to this iterator the value of the specified `rhs` iterator, and return a reference providing modifiable access to this object&period;
| xref:BloombergLP/bdlt/PackedCalendar_HolidayConstIterator/operator_star.adoc[`operator&ast;`] 
| Return a `PackedCalendar&lowbar;DateRef` object that contains the date value of the holiday referenced by this iterator&period;
| xref:BloombergLP/bdlt/PackedCalendar_HolidayConstIterator/operator_inc.adoc[`operator&plus;&plus;`] 
| Advance this iterator to refer to the next holiday in the calendar, and return a reference providing modifiable access to this object&period; The behavior is undefined unless, on entry, this iterator references a valid holiday&period;
| xref:BloombergLP/bdlt/PackedCalendar_HolidayConstIterator/operator_dec.adoc[`operator&hyphen;&hyphen;`] 
| Regress this iterator to refer to the previous holiday in the calendar, and return a reference providing modifiable access to this object&period; The behavior is undefined unless, on entry, this iterator references a valid holiday that is not the first holiday in the associated calendar&period;
| xref:BloombergLP/bdlt/PackedCalendar_HolidayConstIterator/operator_ptr.adoc[`operator&hyphen;&gt;`] 
| Return a date proxy for the holiday referenced by this iterator&period;
|===


== Friends

[cols="1,4"]
|===
| Name| Description
| `xref:BloombergLP/bdlt/operator_not_eq-093.adoc[BloombergLP::bdlt::operator!&equals;]`
| Return `true` if the specified `lhs` and `rhs` iterators do not refer to the same element in the same calendar, and `false` otherwise&period; The behavior is undefined unless `lhs` and `rhs` both iterate over the same calendar&period;
| `xref:BloombergLP/bdlt/operator_eq-050.adoc[BloombergLP::bdlt::operator&equals;&equals;]`
| Return `true` if the specified `lhs` and `rhs` iterators refer to the same element in the same calendar, and `false` otherwise&period; The behavior is undefined unless `lhs` and `rhs` both iterate over the same calendar&period;
| `xref:BloombergLP/bdlt/PackedCalendar.adoc[BloombergLP::bdlt::PackedCalendar]`
| This class implements a space&hyphen;efficient, value&hyphen;semantic repository of weekend and holiday information over a _valid_ _range_ of dates&period; This valid range, `&lsqb;firstDate() &period;&period; lastDate()&rsqb;`, spans the first and last dates of a calendar&apos;s accessible contents&period; A calendar can be &quot;populated&quot; with weekend and holiday information via a suite of &quot;add&quot; methods&period; Any subset of days of the week may be specified as weekend (i&period;e&period;, recurring non&hyphen;business) days starting from a specified date by adding a weekend&hyphen;days transition&semi; holidays within the valid range are specified individually&period; When adding a holiday, an arbitrary integer &quot;holiday code&quot; may be associated with that date&period; Additional holiday codes for that date may subsequently be added&period; Both the holidays and the set of unique holiday codes associated with each holiday date are maintained (internally) in order of increasing value&period; Note that the behavior of requesting _any_ calendar information for a supplied date whose value is outside the current _valid_ _range_ for that calendar (unless otherwise noted, e&period;g&period;, `isWeekendDay`) is undefined&period;
|===

== Non-Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdlt/operator_inc-09c.adoc[`operator&plus;&plus;`]
| Advance the specified `iterator` to refer to the next holiday in the associated calendar, and return the previous value of `iterator`&period; The behavior is undefined unless, on entry, `iterator` references a valid holiday&period;
| xref:BloombergLP/bdlt/operator_dec-0e.adoc[`operator&hyphen;&hyphen;`]
| Regress the specified `iterator` to refer to the previous holiday in the associated calendar, and return the previous value of `iterator`&period; The behavior is undefined unless, on entry, `iterator` references a valid holiday that is not the first holiday in the associated calendar&period;
|===


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