View source code Display the source code in std/meta.d from which this page was generated on github. Improve this page Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone. Page wiki View or edit the community-maintained wiki page associated with this page.

Template std.meta.MostDerived

Returns the type from TList that is the most derived from type T. If none are found, T is returned.

Arguments

template MostDerived(T, TList...);

Example

class A { }
class B : A { }
class C : B { }
alias Types = AliasSeq!(A, C, B);

MostDerived!(Object, Types) x;  // x is declared as type C
static assert(is(typeof(x) == C));

Authors

Walter Bright, David Nadlinger

License

Boost License 1.0.

Comments