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.