Quick Links:

bal | bbl | bdl | bsl

Public Types

bsl::Vector_DeduceIteratorCategory< BSLSTL_ITERATOR, BSLSTL_NOTSPECIALIZED > Struct Template Reference
[Component bslstl_vector]

#include <bslstl_vector.h>

List of all members.

Public Types

typedef bsl::iterator_traits
< BSLSTL_ITERATOR >
::iterator_category 
type

Detailed Description

template<class BSLSTL_ITERATOR, bool BSLSTL_NOTSPECIALIZED = is_fundamental<BSLSTL_ITERATOR>::value>
struct bsl::Vector_DeduceIteratorCategory< BSLSTL_ITERATOR, BSLSTL_NOTSPECIALIZED >

This struct provides a primitive means to distinguish between iterator types and fundamental types, in order to dispatch to the correct implementation of a function template (or constructor template) passed two arguments of identical type. By default, it is assumed that any type that is not a fundamental type, as determined by the type trait bsl::is_fundamental, must be an iterator type. std::iterator_traits is updated in C++17 to provide a SFINAE-friendly instantiation of the primary-template for types that do not provide all of the nested typedef names, but we cannot portably rely on such a scheme yet.

See Component bslstl_vector


Member Typedef Documentation

template<class BSLSTL_ITERATOR , bool BSLSTL_NOTSPECIALIZED = is_fundamental<BSLSTL_ITERATOR>::value>
typedef bsl::iterator_traits<BSLSTL_ITERATOR>::iterator_category bsl::Vector_DeduceIteratorCategory< BSLSTL_ITERATOR, BSLSTL_NOTSPECIALIZED >::type

The documentation for this struct was generated from the following file: