Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2004-07-24 10:19:35


"DY, JERRY U \(SBCSI\)" <jd2419_at_[hidden]> writes:

> Dave,
> The only workaround I have is to surround the static assertion with
> guards:
>
> #if !defined (__HP_aCC)
>
> BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(random_access_traversal_tag)
> #endif
>
> The assumption is that if "advance" is called, the compiler errors
> eventually anyway

Not quite. The rest of the code doesn't care what the traversal
category is actually set to for the iterator.

> so this change should be harmless (and lets aC++
> compile the code). I had to do the same for "decrement" and
> "distance_to" member functions.
>
> Is this workaround okay? I probably should check this in only after 1.32
> release in any case.

Probably the right way to fix this is to indirect through an
auxilliary function template that does the assertion. I presume
_that_ wouldn't be instantiated unless it was actually called.

-- 
Dave Abrahams
Boost Consulting
http://www.boost-consulting.com

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk