Boost logo

Boost :

From: John Maddock (john_at_[hidden])
Date: 2004-12-21 05:46:44


> Here is an emulation -- I use my own unqualified call instead of STL (and
> AFAIK g++ STL makes lots of unqualified calls):
>
> ----------- a.cpp --------------------------------
>
> #include <boost/mpl/find.hpp>
> #include <boost/mpl/vector.hpp>
>
> namespace X
> {
> template<class T>
> void find(const T&)
> {}
> template<class T> struct row
> {};
> void foo()
> {
> find(row<boost::mpl::vector0<> >());
> }
> }
>
> int main()
> {
> X::foo();
> return 0;
> }
> ----------------------------------
>
> 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'

Surely that's a gcc bug (anyone reported this?), there is no argument to
find that is in the mpl namespace, an X::row<boost::mpl::vector0<> > doesn't
count!

John.


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