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

Boost list run by bdawes at, gregod at, cpdaniel at, john at