Are static variables available to other static variables?
Simen Kjærås
simen.kjaras at gmail.com
Fri Apr 12 11:13:36 UTC 2019
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
More information about the Digitalmars-d-learn
mailing list