Traits
luminousone
rd.hunt at gmail.com
Thu Oct 10 22:49:36 PDT 2013
On Friday, 11 October 2013 at 04:13:55 UTC, Agustin wrote:
> I have a function that needs to check if the template provided
> inherit a class.
>
> For example:
>
> public void function(T, A...)(auto ref A values)
> {
> // static assert(IsBaseOf(L, T));
> }
>
> Check if T inherit class "L". Same result that
> std::is_base_of<L, T>::value using C++. Any clean way to do it,
> without a dirty hack.
import std.traits;
bool ChildInheritsFromParent( parent, child )( ) {
foreach ( k, t; BaseClassesTuple!child ) {
if( typeid(t) == typeid(parent) )
return true;
}
return false;
}
More information about the Digitalmars-d-learn
mailing list