/
usr
/
include
/
boost
/
icl
/
/usr/include/boost/icl
mkdir
upload
Name
Size
Mode
Actions
concept/
-
0755
rm
detail/
-
0755
rm
predicates/
-
0755
rm
type_traits/
-
0755
rm
associative_element_container.hpp
862
0644
edit
dl
rm
associative_interval_container.hpp
997
0644
edit
dl
rm
closed_interval.hpp
4252
0644
edit
dl
rm
continuous_interval.hpp
7148
0644
edit
dl
rm
discrete_interval.hpp
6991
0644
edit
dl
rm
dynamic_interval_traits.hpp
1306
0644
edit
dl
rm
functors.hpp
16489
0644
edit
dl
rm
gregorian.hpp
4225
0644
edit
dl
rm
impl_config.hpp
3119
0644
edit
dl
rm
interval.hpp
5983
0644
edit
dl
rm
interval_base_map.hpp
56699
0644
edit
dl
rm
interval_base_set.hpp
22501
0644
edit
dl
rm
interval_bounds.hpp
2893
0644
edit
dl
rm
interval_combining_style.hpp
945
0644
edit
dl
rm
interval_map.hpp
11872
0644
edit
dl
rm
interval_set.hpp
8124
0644
edit
dl
rm
interval_traits.hpp
1900
0644
edit
dl
rm
iterator.hpp
3742
0644
edit
dl
rm
left_open_interval.hpp
4505
0644
edit
dl
rm
map.hpp
26282
0644
edit
dl
rm
open_interval.hpp
4442
0644
edit
dl
rm
ptime.hpp
4317
0644
edit
dl
rm
rational.hpp
2219
0644
edit
dl
rm
right_open_interval.hpp
4422
0644
edit
dl
rm
separate_interval_set.hpp
7928
0644
edit
dl
rm
set.hpp
873
0644
edit
dl
rm
split_interval_map.hpp
10593
0644
edit
dl
rm
split_interval_set.hpp
8616
0644
edit
dl
rm
Edit:
/usr/include/boost/icl/iterator.hpp
(3742B)
/*-----------------------------------------------------------------------------+ Copyright (c) 2009-2009: Joachim Faulhaber +------------------------------------------------------------------------------+ Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENCE.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +-----------------------------------------------------------------------------*/ #ifndef BOOST_ICL_ITERATOR_HPP_JOFA_091003 #define BOOST_ICL_ITERATOR_HPP_JOFA_091003 #include <iterator> #include <boost/config/warning_disable.hpp> namespace boost{namespace icl { /** \brief Performes an addition using a container's memberfunction add, when operator= is called. */ template<class ContainerT> class add_iterator { public: /// The container's type. typedef ContainerT container_type; typedef std::output_iterator_tag iterator_category; typedef void value_type; typedef void difference_type; typedef void pointer; typedef void reference; /** An add_iterator is constructed with a container and a position that has to be maintained. */ add_iterator(ContainerT& cont, typename ContainerT::iterator iter) : _cont(&cont), _iter(iter) {} /** This assignment operator adds the \c value before the current position. It maintains it's position by incrementing after addition. */ add_iterator& operator=(typename ContainerT::const_reference value) { _iter = icl::add(*_cont, _iter, value); if(_iter != _cont->end()) ++_iter; return *this; } add_iterator& operator*() { return *this; } add_iterator& operator++() { return *this; } add_iterator& operator++(int){ return *this; } private: ContainerT* _cont; typename ContainerT::iterator _iter; }; /** Function adder creates and initializes an add_iterator */ template<class ContainerT, typename IteratorT> inline add_iterator<ContainerT> adder(ContainerT& cont, IteratorT iter_) { return add_iterator<ContainerT>(cont, typename ContainerT::iterator(iter_)); } /** \brief Performes an insertion using a container's memberfunction add, when operator= is called. */ template<class ContainerT> class insert_iterator { public: /// The container's type. typedef ContainerT container_type; typedef std::output_iterator_tag iterator_category; typedef void value_type; typedef void difference_type; typedef void pointer; typedef void reference; /** An insert_iterator is constructed with a container and a position that has to be maintained. */ insert_iterator(ContainerT& cont, typename ContainerT::iterator iter) : _cont(&cont), _iter(iter) {} /** This assignment operator adds the \c value before the current position. It maintains it's position by incrementing after addition. */ insert_iterator& operator=(typename ContainerT::const_reference value) { _iter = _cont->insert(_iter, value); if(_iter != _cont->end()) ++_iter; return *this; } insert_iterator& operator*() { return *this; } insert_iterator& operator++() { return *this; } insert_iterator& operator++(int){ return *this; } private: ContainerT* _cont; typename ContainerT::iterator _iter; }; /** Function inserter creates and initializes an insert_iterator */ template<class ContainerT, typename IteratorT> inline insert_iterator<ContainerT> inserter(ContainerT& cont, IteratorT iter_) { return insert_iterator<ContainerT>(cont, typename ContainerT::iterator(iter_)); } }} // namespace icl boost #endif // BOOST_ICL_ITERATOR_HPP_JOFA_091003
Save
cmd:
run