On Sunday, 11 August 2019 at 16:32:20 UTC, Simen Kjærås wrote:
[...] Something like this:
import std.meta : Filter;
import std.traits : isFunction;
import std.algorithm.searching : canFind;
enum isNonspecialMemberFunction(string name) =
!ctorAndDtor.canFind(name) &&
isFunction!(__traits(getMember, T, name));
enum memberFunctions = Filter!(isNonspecialMemberFunction,
__traits(derivedMembers, T));
Filter operates on AliasSeqs, not arrays. That's why I restated
the __traits(derivedMembers, T) part, but this could just as
easily be done by changing this line:
enum members = [__traits(derivedMembers, T)];
to:
alias members = __traits(derivedMembers, T);
--
Simen
Works beautiful, thank you very much!