On Monday, 3 December 2018 at 09:51:45 UTC, Andrey wrote:
Hi,
I want to create a static array and immediately init it with
values:
uint[xxxxx] data = [1,3,10,44,0,5000];
I don't want to set the length of it explicitly (xxxxx in
square brackets). I want that compiler itself counted number of
values (in example it is 6).
What should be a right syntax?
There's no special syntax for this (even though it's been
requested numerous times). However, it's easy to implement in a
library:
import std.traits : CommonType;
CommonType!T[T.length] staticArray(T...)(T args)
if (is(CommonType!T))
{
return [args];
}
unittest {
auto a = staticArray(1,2,3,4);
static assert(is(typeof(a) == int[4]));
}
--
Simen