hasMember - multiple declarations

Function hasMember

Returns true if a member can be found on aggregate with the given memberName, false otherwise.

auto hasMember(alias aggregate, string memberName)() pure nothrow @safe
if (isAggregate!aggregate || isModule!aggregate);

Example

struct S {
    long id;
    int age;
    string name() {
        return "name";
    }
}

hasMember!(S, "id"); // returns true
hasMember!(S, "name"); // returns true
hasMember!(S, "doesNotExist"); // returns false

Function hasMember

Returns true if a member can be found on aggregate filtered with the given predicate, false otherwise.

auto hasMember(alias aggregate, alias predicate)() pure nothrow @safe
if ((isAggregate!aggregate || isModule!aggregate) && is(typeof(unaryFun!predicate)));

Example

struct S {
    long id;
    int age;
    string name() {
        return "name";
    }
}

hasMember!(S, member => is(member.type == long)); // returns true
hasMember!(S, member => is(member.type == string)); // returns true
hasMember!(S, member => member.name == "doesNotExist"); // returns false