BloombergLP::bdlb::TransformIterator_Traits<RESULT(*)(ARGUMENT), ITERATOR>

Specialize the transform iterator traits template for functors that are function or function pointer types. It is sufficient to inherit from the version of the traits class that corresponds to a bsl::function of the function type parameter.

Synopsis

Declared in <bdlb_transformiterator.h>

template<
    class RESULT,
    class ARGUMENT,
    class ITERATOR>
struct TransformIterator_Traits<RESULT(*)(ARGUMENT), ITERATOR>
    : TransformIterator_Traits<bsl::function<RESULT(ARGUMENT)>, ITERATOR>

Base Classes

NameDescription
TransformIterator_Traits<bsl::function<RESULT(ARGUMENT)>, ITERATOR>This component-private class defines various types that are used in the implementation of the transform iterator.

Type Aliases

NameDescription
BaseIteratorTraits Define the iterator traits class of the underlying iterator.
ResultType Define the result type returned by the functor. This is not necessarily the same type as the dereference of the iterator. In C++11, the result type can be determined automatically. Note that various iterations of the language standard might want to instead use std::result_of or std::invoke_result (which have been variously added and then deprecated), but the following works from C++11 onwards.
difference_type Type used to represent distances between iterators.
iterator_category Define the iterator category of the transform iterator. If the functor returns a reference type, we pass through the iterator category of the underlying iterator, otherwise we use the input iterator tag (because all the other tags require that dereferencing produces a reference).
pointer
reference Define the remaining standard types of the transform iterator.
value_type Value type produced by applying the functor to a dereferenced underlying iterator.