BDE 4.39.x Production Release
Loading...
Searching...
No Matches
bslstl::IteratorUtil_LegacyInsertDistance< t_INPUT_ITERATOR, t_SENTINEL, t_MATCHING_SENTINEL > Struct Template Reference

#include <bslstl_iteratorutil.h>

Detailed Description

template<class t_INPUT_ITERATOR, class t_SENTINEL, bool t_MATCHING_SENTINEL = bsl::is_convertible<t_SENTINEL, t_INPUT_ITERATOR>::value>
struct bslstl::IteratorUtil_LegacyInsertDistance< t_INPUT_ITERATOR, t_SENTINEL, t_MATCHING_SENTINEL >

This supporting utility type is used for type-based dispatch as part of the implementation of the similarly structured functions insertDistance and canCalculateInsertDistance from IteratorUtil. Selection between the primary template and secondary (much simpler) one is performed based on the defaulted third parameter that checks if the (template parameter) type t_SENTINEL is convertible to the (template parameter) type t_INPUT_ITERATOR. When the primary template is selected, the decision to delegate distance calculation to bsl::distance is performed using tag dispatch.

Static Public Member Functions

static BSLS_KEYWORD_CONSTEXPR bool canCalculate ()
 
static bsl::iterator_traits< t_INPUT_ITERATOR >::difference_type insertDistance (const t_INPUT_ITERATOR &first, const t_SENTINEL &last)
 

Member Function Documentation

◆ canCalculate()

template<class t_INPUT_ITERATOR , class t_SENTINEL , bool t_MATCHING_SENTINEL>
BSLS_KEYWORD_CONSTEXPR bool bslstl::IteratorUtil_LegacyInsertDistance< t_INPUT_ITERATOR, t_SENTINEL, t_MATCHING_SENTINEL >::canCalculate ( )
static

Return true if the (template parameter) type t_INPUT_ITERATOR has a forward iterator category and the (template parameter) type t_SENTINEL is convertible to t_INPUT_ITERATOR.

◆ insertDistance()

template<class t_INPUT_ITERATOR , class t_SENTINEL , bool t_MATCHING_SENTINEL>
bsl::iterator_traits< t_INPUT_ITERATOR >::difference_type bslstl::IteratorUtil_LegacyInsertDistance< t_INPUT_ITERATOR, t_SENTINEL, t_MATCHING_SENTINEL >::insertDistance ( const t_INPUT_ITERATOR &  first,
const t_SENTINEL &  last 
)
static

Return the number of elements in the range [first, last) if the (template parameter) type t_SENTINEL is convertible to the (template parameter) type t_INPUT_ITERATOR and t_INPUT_ITERATOR has a forward iterator category; otherwise return 0.


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