8#ifndef INCLUDED_BDLB_FUNCTIONOUTPUTITERATOR
9#define INCLUDED_BDLB_FUNCTIONOUTPUTITERATOR
206#include <bdlscm_version.h>
210#include <bsl_iterator.h>
215#if defined(BSLS_LIBRARYFEATURES_STDCPP_LIBCSTD)
221#define BDLB_SUNITERATORWORKAROUND \
222 : public bsl::iterator<bsl::output_iterator_tag, void *, void, void, void>
224#define BDLB_SUNITERATORWORKAROUND
238template <
class FUNCTION>
250 class AssignmentProxy {
253 FUNCTION& d_function;
261 explicit AssignmentProxy(FUNCTION& function);
270 template <
class TYPE>
271 AssignmentProxy& operator=(
const TYPE& rhs);
319 const FunctionOutputIterator &rhs) =
default;
337template <
class FUNCTION>
340 FunctionOutputIterator<FUNCTION>& iterator);
343template <
class FUNCTION>
346 FunctionOutputIterator<FUNCTION>& iterator,
int);
357template <
class FUNCTION>
359FunctionOutputIterator<FUNCTION>::AssignmentProxy::AssignmentProxy(
361 : d_function(function)
366template <
class FUNCTION>
369typename FunctionOutputIterator<FUNCTION>::AssignmentProxy&
370FunctionOutputIterator<FUNCTION>::AssignmentProxy::operator=(
const TYPE& rhs)
380template <
class FUNCTION>
382FunctionOutputIterator<FUNCTION>::FunctionOutputIterator()
387template <
class FUNCTION>
389FunctionOutputIterator<FUNCTION>::FunctionOutputIterator(
390 const FUNCTION& function)
391 : d_function(function)
396template <
class FUNCTION>
398typename FunctionOutputIterator<FUNCTION>::AssignmentProxy
399FunctionOutputIterator<FUNCTION>::operator*()
401 return AssignmentProxy(d_function);
405template <
class FUNCTION>
407FunctionOutputIterator<FUNCTION>&
413template <
class FUNCTION>
415FunctionOutputIterator<FUNCTION>
421#undef BDLB_SUNITERATORWORKAROUND
Definition bdlb_functionoutputiterator.h:239
FunctionOutputIterator(const FunctionOutputIterator &rhs)=default
void value_type
Definition bdlb_functionoutputiterator.h:282
void difference_type
Definition bdlb_functionoutputiterator.h:281
FunctionOutputIterator & operator=(const FunctionOutputIterator &rhs)=default
bsl::output_iterator_tag iterator_category
Definition bdlb_functionoutputiterator.h:280
FunctionOutputIterator(const FUNCTION &function)
AssignmentProxy operator*()
void pointer
Provide type aliases required by C++ standard iterator_traits.
Definition bdlb_functionoutputiterator.h:286
~FunctionOutputIterator()=default
Destroy this object.
void reference
Definition bdlb_functionoutputiterator.h:283
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
Definition bdlb_algorithmworkaroundutil.h:74
FunctionOutputIterator< FUNCTION > & operator++(FunctionOutputIterator< FUNCTION > &iterator)
Do nothing and return specified iterator.
Definition bdlb_functionoutputiterator.h:408