On Wednesday, 15 August 2012 at 13:36:26 UTC, Stefan wrote:
Hi there, I'm having trouble getting the following code to compile:

import std.stdio;

string a = "a";
string b = a;        // line 4

void main()
{
    writeln(b);       // line 8
}

DMD spits out the error "test.d(4): Error: variable a cannot be read at compile time". Is there any way to tell the compiler I want b evaluated at runtime, or am I missing something obvious here?

You must understand that your problem lies in line 4, not in line 8, i.e. the following doesn't work either:

string a = "a";
string b = a;

I don't really know why, but it seems that you can only initialize globals with constants.

What you could do is something like this (I guess):

enum value = "a";
string a = value;
string b = value;

void main()
{
    writeln(b);
    b = "b";
    writeln(b);
}

Reply via email to