$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Anthony Williams (anthony.williamsNOSPAM_at_[hidden])
Date: 2003-09-22 03:54:04
David Abrahams <dave_at_[hidden]> writes:
> Anthony Williams <anthony.williamsNOSPAM_at_[hidden]> writes:
>> I would like to submit my "pair iterators" library for inclusion in
>> boost. The library is described in my article "Pairing off Iterators" from
>> Overload 51, which is available at
>> http://cplusplus.anthonyw.cjb.net/pair_iterators.pdf
> I think you may be a little late. Have you seen
> http://www.boost-consulting.com/boost/boost/iterator/zip_iterator.hpp
> ??
I hadn't. But then, you only checked it in two weeks ago. Does it work
correctly with things like this?
template<typename It>
void rotate_by_one(It begin,It end)
{
typedef std::iterator_traits<It>::value_type ValueType;
if(begin==end)
{
return;
}
ValueType value=*begin; // take a copy and keep it around
for(It prev=begin++;begin!=end;++begin,++prev)
{
*prev=*begin; // overwrite the value copied
}
*prev=value; // use the copy
}
*that* was the bit that I found hardest to get working --- having a value type
such that *it was a real reference, writing to *it updated the underlying
iterators, yet copying from *it produced an object of the same type that
*didn't* update the underlying iterators.
If it does, then I'll let the Ublas guys know, since it was a request from
them to use my code that finally forced me to stop sitting around and submit
it (after all, the article in Overload was published October 2002).
Anthony
-- Anthony Williams Senior Software Engineer, Beran Instruments Ltd. Remove NOSPAM when replying, for timely response.