On Friday, 14 September 2012 at 09:20:03 UTC, monarch_dodra wrote:
This is going to be quick: Is it possible to allocate and
initialize an int in the same line?
int* p = new int(5);
I haven't found a way to 1 liner it. Is it possible?
Do I have to two liner it?
int* p = new int();
*p = 5;
Thanks.
Firstly I thought this thread is purely about syntax. However,
after rereading I think it is about problem of allocation on GC
heap without default initialization. If I understood it right,
possible solution is:
struct S
{
ulong[500_000] array = void;
void load(ulong value)
{
foreach (i, ref ulong v; array)
{
array[i] = value;
}
}
}
void main()
{
// int* p = new int, x = ((*p=5) == 5) ? null : null;
// assert(*p == 5);
auto s = new S;
s.load(5);
}