dereferencing null
Andrej Mitrovic
andrej.mitrovich at gmail.com
Thu Mar 8 08:49:20 PST 2012
On 3/8/12, H. S. Teoh <hsteoh at quickfur.ath.cx> wrote:
> foreach (name; __traits(allMembers, typeof(obj))) {
> static if (__traits(compiles, &__traits(getMember, obj,
> name)))
> {
> alias typeof(__traits(getMember, obj, name))
> type;
> static if (is(type==function)) {
> // name refers to a function of type
> // 'type' here
> }
> }
> }
>
>> I've never had an easy time interacting with __traits.
Yesterday I've tried the same thing but it didn't work because I was
missing the &__traits call. With that in place, here's a very
hardcoded example of what you can do in D:
http://paste.pocoo.org/show/562933/
So now you can catch the exception if the object was uninitialized.
And you didn't have to modify the target class at all.
More information about the Digitalmars-d
mailing list