On Monday, 3 October 2016 at 13:19:19 UTC, Manu wrote:
Fill in the blank...
I'm having a really hard time with this. I've made it work with a
mountain of code, and I want to see what others come up with...

[...]

Dere's a typo

static assert( isStaticMember!(S, "iosm"), "!");

Should be iosf

Easy:

template isStaticMember(T, string member)
{
        static if(__traits(compiles, &__traits(getMember, T, member)))
        {
static if(is(FunctionTypeOf!(__traits(getMember, T, member)) == function))
                {
enum isStaticMember = isFunctionPointer!(__traits(getMember, T, member)) || isDelegate!(__traits(getMember, T, member)) || __traits(isStaticFunction, __traits(getMember, T, member));
                }
                else
                {
enum isStaticMember = true;//!is(typeof(__traits(getMember, T, member).offsetof));
                }
        }
        else
        {
                enum isStaticMember = false;
        }
}

Reply via email to