[#bsl-_Slist_iterator]
= xref:bsl.adoc[bsl]::&lowbar;Slist&lowbar;iterator
:relfileprefix: ../
:mrdocs:

Forward iterator over an `slist` of `&lowbar;Tp` with constness from `&lowbar;Traits`&period;

== Synopsis

Declared in `&lt;bslstp&lowbar;slist&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class &lowbar;Tp,
    class &lowbar;Traits&gt;
struct &lowbar;Slist&lowbar;iterator
    : xref:bsl/_Slist_iterator_base.adoc[&lowbar;Slist&lowbar;iterator&lowbar;base]
----

== Base Classes

[cols="1,4"]
|===
| Name| Description
| `xref:bsl/_Slist_iterator_base.adoc[&lowbar;Slist&lowbar;iterator&lowbar;base]`
| Non&hyphen;templated base for forward iterators over an slist&period;
|===

== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:bsl/_Slist_iterator/_Node.adoc[`&lowbar;Node`] 
| Node type holding a `value&lowbar;type` element&period;
| xref:bsl/_Slist_iterator/_Self.adoc[`&lowbar;Self`] 
| This iterator specialization&period;
| xref:bsl/_Slist_iterator/const_iterator.adoc[`const&lowbar;iterator`] 
| Const iterator type for this value type&period;
| xref:bsl/_Slist_iterator/difference_type.adoc[`difference&lowbar;type`] 
| Signed integral type used for iterator distances&period;
| xref:bsl/_Slist_iterator/iterator.adoc[`iterator`] 
| Non&hyphen;const iterator type for this value type&period;
| xref:bsl/_Slist_iterator/iterator_category.adoc[`iterator&lowbar;category`] 
| Iterator category tag identifying a forward iterator&period;
| xref:bsl/_Slist_iterator/pointer.adoc[`pointer`] 
| Pointer type from the traits&period;
| xref:bsl/_Slist_iterator/reference.adoc[`reference`] 
| Reference type from the traits&period;
| xref:bsl/_Slist_iterator/size_type.adoc[`size&lowbar;type`] 
| Unsigned integral type used for sizes&period;
| xref:bsl/_Slist_iterator/value_type.adoc[`value&lowbar;type`] 
| Element type referenced by this iterator&period;
|===


== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:bsl/_Slist_iterator/2constructor-06.adoc[`&lowbar;Slist&lowbar;iterator`]         [.small]#[constructor]#
| Constructors
| xref:bsl/_Slist_iterator_base/_M_incr.adoc[`&lowbar;M&lowbar;incr`] 
| Advance this iterator to the next node&period;
| xref:bsl/_Slist_iterator/operator_star.adoc[`operator&ast;`] 
| Return a reference to the element at this position&period;
| xref:bsl/_Slist_iterator/operator_inc-06.adoc[`operator&plus;&plus;`] 
| Increment operators
| xref:bsl/_Slist_iterator/operator_ptr.adoc[`operator&hyphen;&gt;`] 
| Return a pointer to the element at this position&period;
| xref:bsl/_Slist_iterator_base/operator_eq.adoc[`operator&equals;&equals;`] 
| Return `true` if both iterators refer to the same node&period;
| xref:bsl/_Slist_iterator_base/operator_not_eq.adoc[`operator!&equals;`] 
| Return `true` if the iterators refer to different nodes&period;
|===


== Data Members

[cols="1,4"]
|===
| Name| Description
| xref:bsl/_Slist_iterator_base/_M_node.adoc[`&lowbar;M&lowbar;node`] 
| Pointer to the current node, or null for a past&hyphen;the&hyphen;end iterator&period;
|===



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