On 5/24/20 2:37 AM, Pavel Shkadzko wrote:
On Saturday, 23 May 2020 at 19:59:30 UTC, Ali Çehreli wrote:
On 5/23/20 11:15 AM, Pavel Shkadzko wrote:> I have tried to implement
a simple flatten function for multidimensional
[...]
Thank you, I was lacking practical examples for templates with "if"
constructs, ehh.
Template constraints are great but 'static if' can be more useful as it
allows custom error messages:
auto makeNdim(size_t N)(size_t length) {
static if (N == 1) {
auto result = iota(value, value + length).array;
value += length;
return result;
} else static if (N > 1) {
return iota(N).map!(n => makeNdim!(N - 1)(length)).array;
} else {
static assert(false, "N cannot be 0.");
}
}
Ali