| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 | // Boost.Geometry Index//// Insert iterator//// Copyright (c) 2011-2013 Adam Wulkiewicz, Lodz, Poland.//// Use, modification and distribution is subject to the Boost Software License,// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at// http://www.boost.org/LICENSE_1_0.txt)#ifndef BOOST_GEOMETRY_INDEX_INSERTER_HPP#define BOOST_GEOMETRY_INDEX_INSERTER_HPP#include <iterator>/*!\defgroup inserters Inserters (boost::geometry::index::)*/namespace boost { namespace geometry { namespace index {template <class Container>class insert_iterator{public:    typedef std::output_iterator_tag iterator_category;    typedef void value_type;    typedef void difference_type;    typedef void pointer;    typedef void reference;    typedef Container container_type;    inline explicit insert_iterator(Container & c)        : container(&c)    {}        insert_iterator & operator=(typename Container::value_type const& value)    {        container->insert(value);        return *this;    }    insert_iterator & operator* ()    {        return *this;    }    insert_iterator & operator++ ()    {        return *this;    }    insert_iterator operator++(int)    {        return *this;    }private:    Container * container;};/*!\brief Insert iterator generator.Returns insert iterator capable to insert values to the container(spatial index) which has member function insert(value_type const&) defined.\ingroup inserters\param c    The reference to the container (spatial index) to which values will be inserted.\return     The insert iterator inserting values to the container.*/template <typename Container>insert_iterator<Container> inserter(Container & c){    return insert_iterator<Container>(c);}}}} // namespace boost::geometry::index#endif // BOOST_GEOMETRY_INDEX_INSERTER_HPP
 |