6 #ifndef TURI_SFRAME_OUTPUT_ITERATOR_HPP 7 #define TURI_SFRAME_OUTPUT_ITERATOR_HPP 18 template <
typename T,
typename ConstRefFunction,
typename MoveFunction,
typename SFrameRowsFunction>
22 typedef std::output_iterator_tag iterator_category;
23 typedef void value_type;
24 typedef void difference_type;
26 typedef void reference;
28 explicit sframe_function_output_iterator() {}
30 explicit sframe_function_output_iterator(
const ConstRefFunction& f,
31 const MoveFunction& f2,
32 const SFrameRowsFunction& f3)
33 : m_f(f), m_f2(f2), m_f3(f3) {}
36 output_proxy(
const ConstRefFunction& f,
37 const MoveFunction& f2,
38 const SFrameRowsFunction& f3) : m_f(f), m_f2(f2), m_f3(f3) { }
40 output_proxy& operator=(
const T& value) {
45 output_proxy& operator=(T&& value) {
46 m_f2(std::move(value));
55 const ConstRefFunction& m_f;
56 const MoveFunction& m_f2;
57 const SFrameRowsFunction& m_f3;
59 output_proxy operator*() {
return output_proxy(m_f, m_f2, m_f3); }
60 self& operator++() {
return *
this; }
61 self& operator++(
int) {
return *
this; }
65 SFrameRowsFunction m_f3;
70 #endif // TURI_SFRAME_OUTPUT_ITERATOR_HPP