Some aggregate.
String name of the member of Thing that we want to check the visibility and deprecationness of.
struct Foo { public int i; private bool b; package string s; deprecated public int di; } class Bar { public int i; private bool b; package string s; deprecated public int di; } static assert( memberIsVisibleAndNotDeprecated!(Foo, "i")); static assert(!memberIsVisibleAndNotDeprecated!(Foo, "b")); static assert(!memberIsVisibleAndNotDeprecated!(Foo, "s")); static assert(!memberIsVisibleAndNotDeprecated!(Foo, "di")); static assert( memberIsVisibleAndNotDeprecated!(Bar, "i")); static assert(!memberIsVisibleAndNotDeprecated!(Bar, "b")); static assert(!memberIsVisibleAndNotDeprecated!(Bar, "s")); static assert(!memberIsVisibleAndNotDeprecated!(Bar, "di"));
Eponymous template; aliases itself to true if the passed member of the passed aggregate Thing is not private and not deprecated.