Traits
luminousone
rd.hunt at gmail.com
Sat Oct 12 12:42:45 PDT 2013
On Saturday, 12 October 2013 at 11:50:05 UTC, Artur Skawina wrote:
> On 10/12/13 13:42, Artur Skawina wrote:
>> template isBaseOf(BASE, C) {
>> static if (is(C S == super))
>> enum isBaseOf = {
>> foreach (A; S)
>> static if (is(A==BASE))
>> return true;
>> return is(C==BASE);
>> }();
>> else
>> enum isBaseOf = is(C==BASE);
>> }
>
> That was too verbose.
>
> template isBaseOf(BASE, C) {
> enum isBaseOf = {
> static if (is(C S == super))
> foreach (A; S)
> static if (is(A==BASE))
> return true;
> return is(C==BASE);
> }();
> }
>
> artur
I like that! Avoids importing std.traits, And will correctly
handle interfaces as well.
More information about the Digitalmars-d-learn
mailing list