Get constructor for a class
simendsjo
simendsjo at gmail.com
Fri Sep 13 07:16:30 PDT 2013
On Friday, 13 September 2013 at 14:02:15 UTC, Gary Willoughby
wrote:
> On Friday, 13 September 2013 at 13:31:34 UTC, simendsjo wrote:
>> On Friday, 13 September 2013 at 13:16:12 UTC, Gary Willoughby
>> wrote:
>>> On Friday, 13 September 2013 at 09:12:53 UTC, simendsjo wrote:
>>>> allMembers returns "this", but trying to get "this" or
>>>> "__ctor" using getMember fails. Is there any way to get this
>>>> method?
>>>
>>> foreach (func; __traits(getOverloads, T, "__ctor"))
>>> {
>>> ...
>>> }
>>
>> Thanks.
>>
>> Still a bit strange though.. "this" is always a member for
>> classes, but if there's only an implicit ctor, only "this"
>> exists, and getOverloads "__ctor" fails.
>>
>> If there exists explicit ctors on the other hand, both "this"
>> *and* "__ctor" exists.
>
> A lot of the traits stuff is very confusing, i think a lot of
> it is still being finalised and in development. I'm working on
> a project using a lot of traits stuff and it's doing my head
> in. I wish there was better documentation. e.g. what is 'func'
> in the code above? i'm using it successfully but i've no idea
> what it is.
I know what you mean. Have been using quite some __traits and
is(), and I still have to look up the syntax for is() all the
time, and experiment with both trying to find the edge-cases.
My biggest problem is that there's only one possible context
pointer for templates and that often DMD is unable to use
contexts even though they are mixed in at the call-site and
really should be available...
More information about the Digitalmars-d-learn
mailing list