Re: how to reflect on function attributes
On 06/05/2013 12:02 AM, Jonathan M Davis wrote: On Wednesday, June 05, 2013 08:52:35 lomereiter wrote: This doesn't work when the method is marked as @property. Any idea why is that so? On Wednesday, 5 June 2013 at 02:19:38 UTC, Jonathan M Davis wrote: is(typeof(A.func) == const) - Jonathan M Davis I don't know. My first guess would be that it thought that it was calling it except that it's being referenced by the type, not by an instance, so that doesn't really make sense. - Jonathan M Davis P.S. Please don't top-post. It makes it harder to follow posts and is generally considered bad newsgroup etiquette. pragma(msg, is(FunctionTypeOf!(A.func) == const));
Re: how to reflect on function attributes
On Wednesday, June 05, 2013 08:52:35 lomereiter wrote: > This doesn't work when the method is marked as @property. Any > idea why is that so? > > On Wednesday, 5 June 2013 at 02:19:38 UTC, Jonathan M Davis wrote: > > is(typeof(A.func) == const) > > > > - Jonathan M Davis I don't know. My first guess would be that it thought that it was calling it except that it's being referenced by the type, not by an instance, so that doesn't really make sense. - Jonathan M Davis P.S. Please don't top-post. It makes it harder to follow posts and is generally considered bad newsgroup etiquette.
Re: how to reflect on function attributes
This doesn't work when the method is marked as @property. Any idea why is that so? On Wednesday, 5 June 2013 at 02:19:38 UTC, Jonathan M Davis wrote: is(typeof(A.func) == const) - Jonathan M Davis
Re: how to reflect on function attributes
On 06/04/2013 07:03 PM, Ellery Newcomer wrote: > specifically, const, eg. > > class A { void func() const { blah } } > > std.traits.FunctionAttributes makes no mention of it Not that it adds more information over the spec, but I have finished the translation of the "is Expression" chapter just yesterday: http://ddili.org/ders/d.en/is_expr.html Ali
Re: how to reflect on function attributes
On 06/04/2013 07:43 PM, Jonathan M Davis wrote: On Tuesday, June 04, 2013 19:23:45 Ellery Newcomer wrote: On 06/04/2013 07:19 PM, Jonathan M Davis wrote: On Tuesday, June 04, 2013 19:03:47 Ellery Newcomer wrote: specifically, const, eg. class A { void func() const { blah } } std.traits.FunctionAttributes makes no mention of it is(typeof(A.func) == const) - Jonathan M Davis I think that is for type only. It returns false for me. What do you mean for type only? const is part of the type. What else would it be part of? For the code example that you gave (minus the blah in the middle), it returns true. - Jonathan M Davis Ah, you're right. don't know how I screwed that up.
Re: how to reflect on function attributes
Ah, you're right. don't know how I screwed that up. Yes I do. I was trying to use typeof(&A.func)
Re: how to reflect on function attributes
On Tuesday, June 04, 2013 19:23:45 Ellery Newcomer wrote: > On 06/04/2013 07:19 PM, Jonathan M Davis wrote: > > On Tuesday, June 04, 2013 19:03:47 Ellery Newcomer wrote: > >> specifically, const, eg. > >> > >> class A { void func() const { blah } } > >> > >> std.traits.FunctionAttributes makes no mention of it > > > > is(typeof(A.func) == const) > > > > - Jonathan M Davis > > I think that is for type only. It returns false for me. What do you mean for type only? const is part of the type. What else would it be part of? For the code example that you gave (minus the blah in the middle), it returns true. - Jonathan M Davis
Re: how to reflect on function attributes
On 06/04/2013 07:19 PM, Jonathan M Davis wrote: On Tuesday, June 04, 2013 19:03:47 Ellery Newcomer wrote: specifically, const, eg. class A { void func() const { blah } } std.traits.FunctionAttributes makes no mention of it is(typeof(A.func) == const) - Jonathan M Davis I think that is for type only. It returns false for me.
Re: how to reflect on function attributes
On Tuesday, June 04, 2013 19:03:47 Ellery Newcomer wrote: > specifically, const, eg. > > class A { void func() const { blah } } > > std.traits.FunctionAttributes makes no mention of it is(typeof(A.func) == const) - Jonathan M Davis