digitalmars.D.learn - static enum member of incomplete type, valid or not?
- TommiT (25/25) Mar 27 2013 I'd like to get a definite answer to whether the following code
- Timon Gehr (3/20) Mar 30 2013 There are no comments that would indicate this.
I'd like to get a definite answer to whether the following code is valid or not: struct S { int v = 42; this(int val) { v = val + 1; } enum s = S(4); } void main() { static assert(S.s.v == 5); } There's a bug report about it: http://d.puremagic.com/issues/show_bug.cgi?id=9397 ...but according to some of the comments there, the code isn't valid anyway, so it's not a bug. This question is parallel to C++, where the following is currently invalid: struct S { int v; static constexpr S s = S{4}; }; ...but there's been a proposal to change the wording of the standard that would make the code valid.
Mar 27 2013
On 03/27/2013 01:01 PM, TommiT wrote:I'd like to get a definite answer to whether the following code is valid or not: struct S { int v = 42; this(int val) { v = val + 1; } enum s = S(4); } void main() { static assert(S.s.v == 5); }Valid.There's a bug report about it: http://d.puremagic.com/issues/show_bug.cgi?id=9397 ...but according to some of the comments there, the code isn't valid anyway, so it's not a bug. ...There are no comments that would indicate this.
Mar 30 2013