Why does this not compile?

Shachar Shemesh shachar at weka.io
Tue Mar 6 12:44:09 UTC 2018


On 06/03/18 14:00, Steven Schveighoffer wrote:
> On 3/6/18 6:21 AM, Simen Kjærås wrote:
>> On Tuesday, 6 March 2018 at 10:03:54 UTC, Shachar Shemesh wrote:
>>> void main() {
>>>     struct S {
>>>         uint value;
>>>
>>>         ~this() {
>>>         }
>>>     }
>>>
>>>     const S a = S(12);
>>>     S b = a;
>>> }
>>>
>>> test.d(10): Error: cannot implicitly convert expression a of type 
>>> const(S) to S
>>
>> Looks like a bug to me - please file one in bugzilla.
> 
> Nope. It's not a bug. S contains a pointer, namely the context pointer 
> for main.
> 
> https://dlang.org/spec/struct.html#nested

Which does not explain why my code compiles if I remove the destructor.

Shachar


More information about the Digitalmars-d mailing list