[dmd-beta] dmd 2.064 beta take 2
Lars Tandle Kyllingstad
lars at kyllingen.net
Wed May 15 23:03:13 PDT 2013
On 05/15/2013 11:19 PM, Andrei Alexandrescu wrote:
> On 5/15/13 5:14 PM, Walter Bright wrote:
>> It means I can't read the code and easily determine what that const
>> value is, even though it is explicitly initialized with a value.
>
> I now understand the concern. I'd argue that static immutable/const
> fulfills that role, and that a member const is supposed to be
> initialized in a constructor (or via the default initializer syntax as
> for any other member) and stay constant throughout the lifetime of the
> object. That _is_ a very useful notion.
>
> I'm not assuming you're proposing this, but I'm clarifying just in case:
> a member that takes per-instance memory YET always has the same value in
> all objects would be positively useless. _That_ should at best be an error.
Are you proposing that this be allowed:
struct S
{
immutable int c = 123;
this(int i) { c = i; }
}
and that the compiler should report an error on the following?
struct S
{
immutable int c = 123;
// No constructor
}
Lars
More information about the dmd-beta
mailing list