From: Jonathan Wakely (cow_at_[hidden])
Date: 2004-12-21 11:57:57
On Tue, Dec 21, 2004 at 01:27:12PM +0000, Jonathan Wakely wrote:
> On Mon, Dec 20, 2004 at 09:00:04PM -0800, Arkadiy Vertleyb wrote:
> > The result is:
> > C:\ark\gcctest>g++ -I c:\boost\boost_1_32_0 a.cpp
> > c:/boost/boost_1_32_0/boost/mpl/find.hpp: In function `void X::foo()':
> > c:/boost/boost_1_32_0/boost/mpl/find.hpp:29: error: `template<class
> > Sequence,
> > class T> struct boost::mpl::find' is not a function,
> > a.cpp:8: error: conflict with `template<class T> void X::find(const T&)'
> > a.cpp:13: error: in call to `find'
> > As you can see, the parameter to foo() makes the compiler consider the
> > boost::mpl namespace for ADL. The combination of unqualified call and g++
> > finding class templates during ADL produces the error.
> According to GCC's bugzilla whether this is wrong is an open Core issue
> I'm not sure which DR Gaby is referring to there, possibly 405 ?
Found it: http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#218
> This is why GCC hasn't been "fixed" to ignore the non-function.
-- "Political satire became obsolete when Henry Kissinger was awarded the Nobel Prize." - Tom Lehrer
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk