On Tuesday, 21 April 2015 at 07:01:27 UTC, Per Nordlöw wrote:
On Tuesday, 21 April 2015 at 06:56:33 UTC, Per Nordlöw wrote:
On Monday, 20 April 2015 at 13:49:41 UTC, John Colvin wrote:
On Thursday, 16 April 2015 at 18:12:35 UTC, Nordlöw wrote:
Is there a way to CT-query the arity of all opIndex and
opSlice overloads?
Further, this is slightly related to a way to query the
dimensions of a data-type. If possible I would like to have a
type trait for this. This type-trait could then be used both
for this challenge but also for figuring out how to create
randomized instances of multi-dimensional structures. This can
be used for automatic generation of data instances of
parameters in algorithm testing and benchmarking.
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.