Some aggregate.
String name of the member of Thing that we want to determine is a non-type non-function non-template non-enum value.
struct Foo { int i; void f() {} template t(T) {} enum E { abc, } } class Bar { int i; void f() {} template t(T) {} enum E { abc, } } static assert( memberIsValue!(Foo, "i")); static assert(!memberIsValue!(Foo, "f")); static assert(!memberIsValue!(Foo, "t")); static assert(!memberIsValue!(Foo, "E")); static assert( memberIsValue!(Bar, "i")); static assert(!memberIsValue!(Bar, "f")); static assert(!memberIsValue!(Bar, "t")); static assert(!memberIsValue!(Bar, "E"));
Aliases itself to true if the passed member of the passed aggregate is a value and not a type, a function, a template or an enum.