From: David Abrahams (dave_at_[hidden])
Date: 2004-09-14 14:30:50
Daniel James <daniel_at_[hidden]> writes:
> David Abrahams wrote:
>> Daniel James <daniel_at_[hidden]> writes:
>>>He adds an extra type parameter to get multiple counters. The function
>>>overloads are generated by friend functions of a templated class,
>>>which is probably not standard compliant - it doesn't work in strict
>>> mode on EDG compilers.
>> Right. Boost.Python used to do that. Came as a terrible shock when
>> I discovered it can't work.
> Peder Holt tried to fix this by making the class a parameter to the
> function, here:
> but it still doesn't work in strict mode. I guess because it relies on
> an implicit cast from int to the type, but I'm not sure. I don't fully
> understand why the operators library works and this doesn't.
Because those friend functions can only be found via ADL, and
naturally ADL doesn't look in the namespaces of classes to which the
arguments can be implicitly converted.
-- 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