[#bsl-Vector_RangeIteratorCategory-09]
= xref:bsl.adoc[bsl]::Vector&lowbar;RangeIteratorCategory
:relfileprefix: ../
:mrdocs:

Metafunction selecting an iterator category for a range pair&period;

== Synopsis

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

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class t&lowbar;ITERATOR,
    class t&lowbar;SENTINEL,
    bool t&lowbar;NOTSPECIALIZED = is&lowbar;fundamental&lt;t&lowbar;ITERATOR&gt;&colon;&colon;value &verbar;&verbar; is&lowbar;fundamental&lt;t&lowbar;SENTINEL&gt;&colon;&colon;value&gt;
struct Vector&lowbar;RangeIteratorCategory;
----

== Description

This `struct` provides a primitive means to determine the iterator category for an iterator&sol;sentinel pair where there is a preference to treat any iterator where the `insertDistance` can be computed as a forward iterator, even if it does not meet the ranges concepts needed to be treated as one&period;

== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:bsl/Vector_RangeIteratorCategory-09/type.adoc[`type`] 
| This `typedef` is an alias to the iterator category used for range insertion&period;
|===


== Specializations

[cols="1,4"]
|===
| Name| Description
| xref:bsl/Vector_RangeIteratorCategory-08.adoc[`Vector&lowbar;RangeIteratorCategory&lt;t&lowbar;ITERATOR, t&lowbar;SENTINEL, true&gt;`] 
| Specialization of `Vector&lowbar;RangeIteratorCategory` for fundamental types&period;
|===



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