Boost logo

Boost Users :

From: Jeff Flinn (TriumphSprint2000_at_[hidden])
Date: 2003-09-24 15:16:10


Dave,

"David Abrahams" <dave_at_[hidden]> wrote in message > "Jeff Flinn"
<TriumphSprint2000_at_[hidden]> writes:
>
> > I'm having problems compiling the code below with boost_1_30_2 and VC71
> > complaining about:
> >
> > ...\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(489)
> > : error C2665: 'std::_Distance2'
> > : none of the 4 overloads can convert parameter 4
> > from type 'std::iterator_traits<_Iter>::iterator_category'
> > with
> > [
> > _Iter=CDictionary::tVarConstItr
> > ]
> > ...
> >
> > Replacing with std::distance( lBeg.base(), lItr.base() ) does compile
and
> > work properly. Am I missing something in the typedef of tVarConstItr
that
> > would allow direct usage?
>
> No, you've got the order of the parameters to
> indirect_iterator_generator wrong.

Thanks for spotting that. I entered them in the order listed in the Template
Parameters table rather than in the order specified in the Synopsis in the
documentation.

> I suggest you let the library defaults take effect instead.
>
> typedef boost::indirect_iterator_generator
> < tVars::const_iterator
> , tVar const
> >::type tVarConstItr;
>
> typedef boost::indirect_iterator_generator
> < tVars::const_iterator
> , tVar
> ::iterator_category
> >::type tVarItr;
>
> But you'll have a bigger problem. IIRC the version of iterator
> adaptors in 1.30.2 doesn't support indirect iterators over shared_ptr.
> Go ahead and try it, but if you have trouble you may want to switch to
> the (much easier-to-use) version of the library in the CVS, which
> explicitly *does* support that usage.

Explicitly specifying all template parameters is what allows 1.30.2 to work
with shared_ptr's. I'm far from smart enough to figure this out on my own,
and took this tack based on one of your responses that I found doing a
search on relevant topics.

I gather that the new iterator adaptors will not have these issues. Will
they be in 1.31.0 recently brought up by Beman?

Thanks again,

-- 
Jeff Flinn
Applied Dynamics, International

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net