[#bsl-vector_ForwardIteratorForPtrs-08]
= xref:bsl.adoc[bsl]::vector&lowbar;ForwardIteratorForPtrs
:relfileprefix: ../
:mrdocs:

Metafunction selecting an iterator adaptor for pointer&hyphen;vector members&period;

== Synopsis

Declared in `&lt;bslstl&lowbar;vector&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class TARGET,
    class ITERATOR,
    bool = is&lowbar;integral&lt;ITERATOR&gt;&colon;&colon;value&gt;
struct vector&lowbar;ForwardIteratorForPtrs;
----

== Description

This metafunction provides an appropriate iterator adaptor for the specified (template parameter) type `ITERATOR` in order to implement members of the `vector` partial template specialization for vectors of pointers to the (template parameter) type `TARGET`&period; The metafunction will return the original `ITERATOR` type unless it truly is an iterator, using `is&lowbar;integral` as a proxy for testing that a type is NOT an iterator&period; This is needed to disambiguate only the cases of users passing `0` as a null&hyphen;pointer value to functions requesting a number of identical copies of an element&period;

== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:bsl/vector_ForwardIteratorForPtrs-08/type.adoc[`type`] 
| This `typedef` is an alias to the specified (template parameter) `ITERATOR` type&period;
|===


== Specializations

[cols="1,4"]
|===
| Name| Description
| xref:bsl/vector_ForwardIteratorForPtrs-06.adoc[`vector&lowbar;ForwardIteratorForPtrs&lt;TARGET, ITERATOR, false&gt;`] 
| Specialization wrapping non&hyphen;integral iterators for pointer vectors&period;
|===



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