[C++-sig] Possible overload<> template for class members
Joel de Guzman
djowel at gmx.co.uk
Fri Dec 13 11:41:18 CET 2002
----- Original Message -----
From: "Aleksey Gurtovoy" <agurtovoy at meta-comm.com>
> Ralf W. Grosse-Kunstleve wrote:
> > --- William Trenker <wtrenker at hotmail.com> wrote:
> > > .def("show", overload<void,void>(), &Window::show)
> > > .def("show", overload<void,const Window*>(), &Window.show)
> >
> > That looks just like my old "plan A" :-)
> >
> > > Is something like this even possible?
> >
> > David kept claiming the answer is no, because in C++ you cannot take
> > the "address" of a family over overloaded functions. If Window.show
> > has overloads the compiler has no way of knowing which one you mean
> > if you just type &Window.show.
>
> Hmm, seems entirely possible to me:
>
[snip]
>
> Am I missing something?
Cool Aleksey, cool! I think your scheme will work, AFAICT.
Might need some workarounds on VC6 and CW7.2.
Compiles on g++2.95, g++3.1, Comeau, intel and VC7.
However, it still can't handle default arguments automatically :-(
For instance:
void show(int = 45, bool* = 0, char 'x') {}
I still see no way to def this in one fell swoop. You still need
three defs.
... Or am I missing something?
Many thanks,
Joel de Guzman
joel at boost-consulting.com
http://www.boost-consulting.com
More information about the Cplusplus-sig
mailing list