Boost logo

Boost :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2001-07-30 05:19:50


From: "David Abrahams" <david.abrahams_at_[hidden]>
[...]
> So, we're back to the Lib 225/229 issue again! The problem has raised its
> ugly head breathtakingly often of late.
[...]
> Anyway, another technique we ought to consider is that of /embracing/
> overload resolution instead of avoiding it. Since some functions can only
be
> called without qualification (see the Barton & Nackmann technique used by
> the operators library), it might be better to use a special tag type to
> indicate which library's semantics are intended:
>
> template <class S>
> typename boost::sequence_traits<S>::iterator begin(S const&, boost::tag);
>
> So instead of boost::begin(s) we're going to call begin(s, boost::tag())

The problem with gcc 3.0 that you recently discovered applies here, too.
Depending on how CWG #218 is resolved, a Koenig-reachable non-function named
"begin" may break the lookup and the added boost::tag won't help. We're back
to "keyword" stage. :-(

--
Peter Dimov
Multi Media Ltd.

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