CT-String as a Symbol

Vlad Levenfeld via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Apr 21 13:29:59 PDT 2015


template dimensionality (S) {
   template count_dim (uint i = 0) {
     static if (is (typeof(S.init.opSlice!i (0,0))))
       enum count_dim = count_dim!(i+1);
     else static if (i == 0 && (isInputRange!S || is 
(typeof(S.init[0])))
       enum count_dim = 1;
     else enum count_dim = i;
   }

   alias dimensionality = count_dim!();
}

Should work for any case I can think of (assuming integral 
indices).


More information about the Digitalmars-d-learn mailing list