Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2003-02-24 20:04:40


Daniel Frey <d.frey_at_[hidden]> writes:

> When I have a class X which lives in a namespace where there's a function
> 'checked_delete' declared that can take a X*, smart_ptr (and probably others)
> that use checked_deleter (note the 'r'!) cannot call checked_delete. It's
> ambiguous due to argument dependent lookup. To fix it, I had to make the
> call to checked_delete in checked_deleter qualified:
>
> template<class T> struct checked_deleter
> {
> typedef void result_type;
> typedef T * argument_type;
>
> void operator()(T * x) const
> {
> ::boost::checked_delete(x);
> }
> };
>
> (alas for checked_array_deleter)
>
> Comments?

ADL strikes again!

-- 
Dave Abrahams
Boost Consulting
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