Structs are Not Plain: A call for empty struct constructors
Andrea Fontana
nospam at example.com
Fri Sep 20 07:53:00 UTC 2019
On Friday, 20 September 2019 at 07:24:11 UTC, Max Samukha wrote:
> On Friday, 20 September 2019 at 06:01:00 UTC, Jonathan M Davis
> wrote:
>
>>
>> The issue of whether with allows you to construct a temporary
>> that's valid for the entire scope of the with block is a
>> separate issue from whether D should be altered to have
>> default constructors. The OP just happened to use it in their
>> example, and it does currently seem to work even if the spec
>> is silent on the matter. Whether it ever gets changed to not
>> work or the spec gets updated to define its behavior is
>> irrelevant to the issue of default constructors.
>>
>> - Jonathan M Davis
>
> Ok, I agree that the unspecified copy elision semantics is a
> separate issue.
I wonder why nobody suggest something like this:
class MyClass {}
struct Fixture
{
int i;
immutable MyClass c;
}
auto fixture()
{
Fixture ret =
{
i : 10,
c : new MyClass()
};
return ret;
}
void main()
{
with(fixture())
{
}
}
Andrea
More information about the Digitalmars-d
mailing list