// $Id$
//
-// Copyright (C) 2008
+// Copyright (C) 2008
// Fraunhofer Institute for Open Communication Systems (FOKUS)
// Competence Center NETwork research (NET), St. Augustin, GERMANY
// Stefan Bund <g0dil@berlios.de>
///////////////////////////////cti.p///////////////////////////////////////
template <class Range, class Fn>
-prefix_ boost::iterator_range<
+prefix_ boost::iterator_range<
boost::transform_iterator< Fn,
typename boost::range_const_iterator<Range>::type > >
senf::make_transform_range(Range const & range, Fn const & fn)
}
template <class Range, class Fn>
-prefix_ boost::iterator_range<
+prefix_ boost::iterator_range<
boost::transform_iterator< Fn,
typename boost::range_iterator<Range>::type > >
senf::make_transform_range(Range & range, Fn const & fn)
boost::make_transform_iterator(boost::end(range), fn) );
}
+template <class Range, class Iterator>
+prefix_ void senf::copy_range(Range const & range, Iterator const & i)
+{
+ std::copy(boost::begin(range), boost::end(range), i);
+}
+
+template <class Range, class Iterator>
+prefix_ void senf::copy_range(Range & range, Iterator const & i)
+{
+ std::copy(boost::begin(range), boost::end(range), i);
+}
+
+template <class Range>
+prefix_ bool senf::has_one_elt(Range r)
+{
+ return ! r.empty() && boost::next(r.begin()) == r.end();
+}
+
///////////////////////////////cti.e///////////////////////////////////////
#undef prefix_