| Thread overview | ||||||
|---|---|---|---|---|---|---|
|
April 21, 2009 two semantic change proposals | ||||
|---|---|---|---|---|
| ||||
I believe the following allow the runtime reflection wrapper. Though it changes the old semantics, the old one can be implemented on top of the new semantics http://d.puremagic.com/issues/show_bug.cgi?id=2868 -- 使用 Opera 革命性的电子邮件客户程序: http://www.opera.com/mail/ | ||||
April 21, 2009 Re: two semantic change proposals | ||||
|---|---|---|---|---|
| ||||
Posted in reply to davidl | On Tue, 21 Apr 2009 07:58:32 -0400, davidl <davidl@nospam.org> wrote:
> I believe the following allow the runtime reflection wrapper. Though it changes the old semantics, the old one can be implemented on top of the new semantics
>
> http://d.puremagic.com/issues/show_bug.cgi?id=2868
>
>
That's cool.
However, you have misunderstood how the opDot function name should be passed via templates.
The opDot signature should not take a type as the first argument, but a string. Otherwise, you have no compile-time abilities with the function name:
opDot(string methodname, T...)(T args)
instead of
opDot(U:immutable(char)[], T...)(U methodname, T args)
-Steve
| |||
April 21, 2009 Re: two semantic change proposals | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Steven Schveighoffer | 在 Tue, 21 Apr 2009 20:21:05 +0800,Steven Schveighoffer <schveiguy@yahoo.com> 写道: > On Tue, 21 Apr 2009 07:58:32 -0400, davidl <davidl@nospam.org> wrote: > >> I believe the following allow the runtime reflection wrapper. Though it changes the old semantics, the old one can be implemented on top of the new semantics >> >> http://d.puremagic.com/issues/show_bug.cgi?id=2868 >> >> > > > That's cool. > > However, you have misunderstood how the opDot function name should be passed via templates. > > The opDot signature should not take a type as the first argument, but a string. Otherwise, you have no compile-time abilities with the function name: > > opDot(string methodname, T...)(T args) > > instead of > > opDot(U:immutable(char)[], T...)(U methodname, T args) > > -Steve It's said there will be soon "static string" param. I think the prototype might best be refined that time. -- 使用 Opera 革命性的电子邮件客户程序: http://www.opera.com/mail/ | |||
April 21, 2009 Re: two semantic change proposals | ||||
|---|---|---|---|---|
| ||||
Posted in reply to davidl | davidl wrote: > ÔÚ Tue, 21 Apr 2009 20:21:05 +0800£¬Steven Schveighoffer <schveiguy@yahoo.com> дµÀ: > >> On Tue, 21 Apr 2009 07:58:32 -0400, davidl <davidl@nospam.org> wrote: >> >>> I believe the following allow the runtime reflection wrapper. Though it changes the old semantics, the old one can be implemented on top of the new semantics >>> >>> http://d.puremagic.com/issues/show_bug.cgi?id=2868 >>> >>> >> >> >> That's cool. >> >> However, you have misunderstood how the opDot function name should be passed via templates. >> >> The opDot signature should not take a type as the first argument, but a string. Otherwise, you have no compile-time abilities with the function name: >> >> opDot(string methodname, T...)(T args) >> >> instead of >> >> opDot(U:immutable(char)[], T...)(U methodname, T args) >> >> -Steve > > It's said there will be soon "static string" param. I first proposed that about 3 years ago. I seriously don't believe it's going to happen any time soon. In fact, IIRC, Walter said that he'd found a problem with it. Maybe in D3. > I think the prototype might best be refined that time. We need something that works in D2. | |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply