[back.insert.iterator] (original) (raw)
24 Iterators library [iterators]
24.5 Iterator adaptors [predef.iterators]
24.5.2 Insert iterators [insert.iterators]
24.5.2.2 Class template back_insert_iterator [back.insert.iterator]
24.5.2.2.1 General [back.insert.iter.general]
namespace std { template<class Container> class back_insert_iterator { protected: Container* container;public: using iterator_category = output_iterator_tag;using value_type = void;using difference_type = ptrdiff_t;using pointer = void;using reference = void;using container_type = Container;constexpr explicit back_insert_iterator(Container& x);constexpr back_insert_iterator& operator=(const typename Container::value_type& value);constexpr back_insert_iterator& operator=(typename Container::value_type&& value);constexpr back_insert_iterator& operator*();constexpr back_insert_iterator& operator++();constexpr back_insert_iterator operator++(int);};}
24.5.2.2.2 Operations [back.insert.iter.ops]
constexpr explicit back_insert_iterator(Container& x);
Effects: Initializescontainerwith addressof(x).
constexpr back_insert_iterator& operator=(const typename Container::value_type& value);
Effects: As if by: container->push_back(value);
constexpr back_insert_iterator& operator=(typename Container::value_type&& value);
Effects: As if by: container->push_back(std::move(value));
constexpr back_insert_iterator& operator*();
constexpr back_insert_iterator& operator++();constexpr back_insert_iterator operator++(int);
24.5.2.2.3 back_inserter [back.inserter]
template<class Container> constexpr back_insert_iterator<Container> back_inserter(Container& x);
Returns: back_insert_iterator<Container>(x).