CT-String as a Symbol
via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Tue Apr 21 01:09:34 PDT 2015
On Tuesday, 21 April 2015 at 07:46:03 UTC, Vlad Levenfeld wrote:
> 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 enum count_dim = i;
> }
>
> alias dimensionality = count_dim!();
> }
>
> Then you throw in some more stuff to detect 1-dimensional cases.
Great! I guess a template restriction on opSlice would be in
Place aswell.
One thing: Why aren't you using opIndex instead? If there are
types that have opIndex but not opSlice defined then
dimensionality() could cover more types, right?
More information about the Digitalmars-d-learn
mailing list