www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Default struct member initializer ?

reply Temtaime <temtaime gmail.com> writes:
Hi !

Is there such a magic ?

struct S { uint k = 2; }

enum Value = Foo!(S.k); // Value == 2

Thanks.
Oct 28 2016
parent reply John Colvin <john.loughran.colvin gmail.com> writes:
On Friday, 28 October 2016 at 11:20:50 UTC, Temtaime wrote:
 Hi !

 Is there such a magic ?

 struct S { uint k = 2; }

 enum Value = Foo!(S.k); // Value == 2

 Thanks.
struct S { int k = 2; } enum Value = S.init.k; static assert (Value == 2);
Oct 28 2016
parent reply Temtaime <temtaime gmail.com> writes:
On Friday, 28 October 2016 at 11:23:47 UTC, John Colvin wrote:
 On Friday, 28 October 2016 at 11:20:50 UTC, Temtaime wrote:
 Hi !

 Is there such a magic ?

 struct S { uint k = 2; }

 enum Value = Foo!(S.k); // Value == 2

 Thanks.
struct S { int k = 2; } enum Value = S.init.k; static assert (Value == 2);
Oh i see, thanks
Oct 28 2016
parent reply Temtaime <temtaime gmail.com> writes:
But what about the case when default ctor is disabled ?
Oct 28 2016
parent John Colvin <john.loughran.colvin gmail.com> writes:
On Friday, 28 October 2016 at 11:37:52 UTC, Temtaime wrote:
 But what about the case when default ctor is disabled ?
Only relevant if you've written something like ` disable static S init();`, which you shouldn't be doing anyway. `.init` is independent of ` disable this()`
Oct 28 2016