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);
269 template <
class TYPE>
270 AssignmentProxy& operator=(
const TYPE& rhs);
317 const FunctionOutputIterator &rhs) =
default;
334template <
class FUNCTION>
337 FunctionOutputIterator<FUNCTION>& iterator);
340template <
class FUNCTION>
343 FunctionOutputIterator<FUNCTION>& iterator,
int);
354template <
class FUNCTION>
356FunctionOutputIterator<FUNCTION>::AssignmentProxy::AssignmentProxy(
358 : d_function(function)
363template <
class FUNCTION>
366typename FunctionOutputIterator<FUNCTION>::AssignmentProxy&
367FunctionOutputIterator<FUNCTION>::AssignmentProxy::operator=(
const TYPE& rhs)
377template <
class FUNCTION>
379FunctionOutputIterator<FUNCTION>::FunctionOutputIterator()
384template <
class FUNCTION>
386FunctionOutputIterator<FUNCTION>::FunctionOutputIterator(
387 const FUNCTION& function)
388 : d_function(function)
393template <
class FUNCTION>
395typename FunctionOutputIterator<FUNCTION>::AssignmentProxy
396FunctionOutputIterator<FUNCTION>::operator*()
398 return AssignmentProxy(d_function);
402template <
class FUNCTION>
404FunctionOutputIterator<FUNCTION>&
410template <
class FUNCTION>
412FunctionOutputIterator<FUNCTION>
418#undef BDLB_SUNITERATORWORKAROUND
Definition bdlb_functionoutputiterator.h:239
FunctionOutputIterator(const FunctionOutputIterator &rhs)=default
void value_type
Definition bdlb_functionoutputiterator.h:281
void difference_type
Definition bdlb_functionoutputiterator.h:280
FunctionOutputIterator & operator=(const FunctionOutputIterator &rhs)=default
bsl::output_iterator_tag iterator_category
Definition bdlb_functionoutputiterator.h:279
FunctionOutputIterator(const FUNCTION &function)
AssignmentProxy operator*()
void pointer
Provide type aliases required by C++ standard iterator_traits.
Definition bdlb_functionoutputiterator.h:285
~FunctionOutputIterator()=default
Destroy this object.
void reference
Definition bdlb_functionoutputiterator.h:282
#define BSLS_IDENT(str)
Definition bsls_ident.h:195
Definition bdlb_algorithmworkaroundutil.h:74
FunctionOutputIterator< FUNCTION > & operator++(FunctionOutputIterator< FUNCTION > &iterator)
Do nothing and return specified iterator.
Definition bdlb_functionoutputiterator.h:405