www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - how to reflect on function attributes

reply Ellery Newcomer <ellery-newcomer utulsa.edu> writes:
specifically, const, eg.

class A { void func() const { blah } }

std.traits.FunctionAttributes makes no mention of it
Jun 04 2013
next sibling parent reply "Jonathan M Davis" <jmdavisProg gmx.com> writes:
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
Jun 04 2013
next sibling parent reply Ellery Newcomer <ellery-newcomer utulsa.edu> writes:
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.
Jun 04 2013
parent reply "Jonathan M Davis" <jmdavisProg gmx.com> writes:
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
Jun 04 2013
parent reply Ellery Newcomer <ellery-newcomer utulsa.edu> writes:
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.
Jun 04 2013
parent Ellery Newcomer <ellery-newcomer utulsa.edu> writes:
 Ah, you're right. don't know how I screwed that up.
Yes I do. I was trying to use typeof(&A.func)
Jun 04 2013
prev sibling parent reply "lomereiter" <lomereiter gmail.com> writes:
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
Jun 04 2013
parent reply Jonathan M Davis <jmdavisProg gmx.com> writes:
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.
Jun 05 2013
parent Ellery Newcomer <ellery-newcomer utulsa.edu> writes:
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));
Jun 05 2013
prev sibling parent =?UTF-8?B?QWxpIMOHZWhyZWxp?= <acehreli yahoo.com> writes:
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
Jun 04 2013