Thread overview | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
June 05, 2013 how to reflect on function attributes | ||||
---|---|---|---|---|
| ||||
specifically, const, eg. class A { void func() const { blah } } std.traits.FunctionAttributes makes no mention of it |
June 05, 2013 Re: how to reflect on function attributes | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ellery Newcomer | 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
|
June 05, 2013 Re: how to reflect on function attributes | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jonathan M Davis | 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.
|
June 05, 2013 Re: how to reflect on function attributes | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ellery Newcomer | 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
|
June 05, 2013 Re: how to reflect on function attributes | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jonathan M Davis | 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.
|
June 05, 2013 Re: how to reflect on function attributes | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ellery Newcomer | >
> Ah, you're right. don't know how I screwed that up.
Yes I do. I was trying to use typeof(&A.func)
|
June 05, 2013 Re: how to reflect on function attributes | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ellery Newcomer | 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 |
June 05, 2013 Re: how to reflect on function attributes | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jonathan M Davis | 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
|
June 05, 2013 Re: how to reflect on function attributes | ||||
---|---|---|---|---|
| ||||
Posted in reply to lomereiter | 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.
|
June 06, 2013 Re: how to reflect on function attributes | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jonathan M Davis | 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));
|
Copyright © 1999-2021 by the D Language Foundation