On Friday, 12 April 2019 at 10:56:32 UTC, Jamie wrote:
On Friday, 12 April 2019 at 10:49:19 UTC, Jamie wrote:
I was trying to declare a static variable dependent on another
static variable, but it didn't work. Are static variables not
known to other static variables at compile time?
void main()
{
C c = new C();
}
class C
{
static size_t A = 2;
static size_t B = 2^^A; // A is not known at compile time
}
Ok I'm confused... why does that above not work but this does:
void main()
{
C c = new C();
}
class C
{
static size_t A = 2;
static size_t B;
static this()
{
B = 2^^A;
}
}
A static constructor isn't run at compile time, but upon starting
the program. Thus, values that are only available at run time can
be used by a static constructor.
--
Simen