On Tue, 27 Dec 2011 07:10:14 -0800, Andrei Alexandrescu 
<seewebsiteforem...@erdani.org> wrote:

On 12/27/11 4:32 AM, Peter Alexander wrote:
On 27/12/11 3:05 AM, Andrei Alexandrescu wrote:
On 12/26/11 8:23 PM, Peter Alexander wrote:
I am
not convinced that it can be used seamlessly without some relatively
large changes to the language.

I repeat that opDispatch and auto ref were invented for this, so
anything that doesn't work now is a bug. There are no changes needed to
the language, only fix the bugs :o).

How do you call template member functions of the held object without
changing opDispatch?

The idea is to pass the entire template instantiation as the string.

obj.foo!(bar, baz)(a, b);

->

obj.opDispatch!("foo!(bar, baz)")(a, b);



Andrei

I would have thought that the template parameters would be passed to opDispatch 
i.e.

obj.opDispatch!("foo",bar,baz)(a,b);

although I don't know how opDispatch would be written to handle such a call in 
a generic manner, i.e. I would want to define it as

obj.opDispatch!(string name, Targs..,Vargs..)(Vargs args) { ... }

but stuff like that isn't possible currently.

That said, parsing the string for "bar" and "baz" is both difficult and doesn't provide access 
inside opDispatch to "bar" and "baz".

Reply via email to