[#BloombergLP-bdlb-TransformIterator_Traits-04] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlb.adoc[bdlb]::xref:BloombergLP/bdlb/TransformIterator_Traits-0f.adoc[TransformIterator_Traits]<RESULT(ARGUMENT), ITERATOR> :relfileprefix: ../../ :mrdocs: == Synopsis Declared in `<bdlb_transformiterator.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class RESULT, class ARGUMENT, class ITERATOR> struct xref:BloombergLP/bdlb/TransformIterator_Traits-0f.adoc[TransformIterator_Traits]<RESULT(ARGUMENT), ITERATOR> : xref:BloombergLP/bdlb/TransformIterator_Traits-0f.adoc[TransformIterator_Traits<bsl::function<RESULT(ARGUMENT)>, ITERATOR>] ---- == Base Classes [cols="1,4"] |=== | Name| Description | `xref:BloombergLP/bdlb/TransformIterator_Traits-0f.adoc[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 [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlb/TransformIterator_Traits-0f/BaseIteratorTraits.adoc[`BaseIteratorTraits`] | Define the iterator traits class of the underlying iterator. | xref:BloombergLP/bdlb/TransformIterator_Traits-0f/ResultType.adoc[`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. | xref:BloombergLP/bdlb/TransformIterator_Traits-0f/difference_type.adoc[`difference_type`] | Type used to represent distances between iterators. | xref:BloombergLP/bdlb/TransformIterator_Traits-0f/iterator_category.adoc[`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). | xref:BloombergLP/bdlb/TransformIterator_Traits-0f/pointer.adoc[`pointer`] | | xref:BloombergLP/bdlb/TransformIterator_Traits-0f/reference.adoc[`reference`] | Define the remaining standard types of the transform iterator. | xref:BloombergLP/bdlb/TransformIterator_Traits-0f/value_type.adoc[`value_type`] | Value type produced by applying the functor to a dereferenced underlying iterator. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#