Simple template constraint question

WhatMeWorry via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Sep 19 10:09:46 PDT 2015


Does D provide complete template constraint granularity?

In other words, I want to only accept structs in the template 
below.
I've find the isAggregateType which is close but no cigar. Am I 
missing
some other filters?

And a more open ended question.  Is there a more elegant solution 
for the
below function?  Maybe a one-liner?  I have a knack for making 
simple solutions
complex :)



// Calculate the number of components for openGL generic
// vertex attribute. Must be 1, 2, 3, 4.

// isAggregateType constraint accepts class, union, struct, and 
interface

int getNumberComponents(T)(T someStruct) if (isAggregateType!(T))
{
     int members = 0;
     foreach (i, member; someStruct.tupleof)
     {
         //writefln("Member %s:", i);
         //writefln("  type : %s", typeof(member).stringof);
         //writefln("  value: %s", member);
         members++;
     }
     return members;
}


More information about the Digitalmars-d-learn mailing list