On Saturday, 21 September 2013 at 16:09:35 UTC, simendsjo wrote:
On Saturday, 21 September 2013 at 15:43:11 UTC, Maxim Fomin wrote:
On Saturday, 21 September 2013 at 11:13:57 UTC, simendsjo wrote:
I want to know if a variable has changed .init, but I don't know if it's possible if the .init value is the same. Does anyone have a solution for this?

  int a;
  int b = 0;
  pragma(msg, a.init); // 0
  pragma(msg, b.init); // 0
  // how can I see that b has "= 0"?

Strictly speaking this is an ill-posed question. Are talking about testing at runtime whether some variable was changed from init to some non-default value?

No, at compile-time. It's trivial to see if init is changed, but I want to see if it's set even if it's to T.init.

I think there is a misunderstanding in your "a.init" and "b.init": This is just calling a static property on an instance. It's no different from T.init.

It *won't* tell you what a/b was initially initialized with.

If I understand correctly, you want:

int b = 3;
static assert(__traits(initialValue, b) == 3);

?

I don't think we have that. I'm not even sure we *can* have that.

Reply via email to