digitalmars.D.learn - static const (D 1.x)
- Bill Baxter (24/24) Sep 18 2007 I've got a situation like this:
- Don Clugston (3/39) Sep 21 2007 Is StaticA getting initialized somewhere?
- Bill Baxter (8/49) Sep 21 2007 It's not getting initialized anywhere, but it's a struct, so it has a
I've got a situation like this:
struct A
{
opEquals
int idx = -1;
}
class Foo(Type)
{
...
static const A StaticA;
}
But it doesn't work when I try to do something like this in a function:
A myA;
if (myA == Foo!(Type).StaticA) { // <-- error here
}
The error I get is:
Error: can only initialize static const StaticA inside static
constructor
Is this a bug?
I notice that it compiles if I make StaticA just "static" instead of
"static const".
At the very least the compiler error text seems wrong since I'm not
trying to initialize anything.
--bb
Sep 18 2007
Bill Baxter wrote:
I've got a situation like this:
struct A
{
opEquals
int idx = -1;
}
class Foo(Type)
{
...
static const A StaticA;
}
But it doesn't work when I try to do something like this in a function:
A myA;
if (myA == Foo!(Type).StaticA) { // <-- error here
}
The error I get is:
Error: can only initialize static const StaticA inside static
constructor
Is this a bug?
I notice that it compiles if I make StaticA just "static" instead of
"static const".
At the very least the compiler error text seems wrong since I'm not
trying to initialize anything.
--bb
Is StaticA getting initialized somewhere?
If not, that's probably the root cause (and the error message is a bit
misleading).
Sep 21 2007
Don Clugston wrote:Bill Baxter wrote:It's not getting initialized anywhere, but it's a struct, so it has a default value with which it should be implicitly initialized. Are you saying that I should be doing static const A StaticA = {-1}; ? I'll give it a try, but it doesn't seem like that should be necessary. --bbI've got a situation like this: struct A { opEquals int idx = -1; } class Foo(Type) { ... static const A StaticA; } But it doesn't work when I try to do something like this in a function: A myA; if (myA == Foo!(Type).StaticA) { // <-- error here } The error I get is: Error: can only initialize static const StaticA inside static constructor Is this a bug? I notice that it compiles if I make StaticA just "static" instead of "static const". At the very least the compiler error text seems wrong since I'm not trying to initialize anything. --bbIs StaticA getting initialized somewhere? If not, that's probably the root cause (and the error message is a bit misleading).
Sep 21 2007








Bill Baxter <dnewsgroup billbaxter.com>