Using .require for struct types
Salih Dincer
salihdb at hotmail.com
Sun Sep 11 21:01:27 UTC 2022
On Saturday, 10 September 2022 at 16:33:03 UTC, Erdem Demir wrote:
> I wish I could use ref DListOfA returnVal = .... but we can't
> in D.
>
> Can you please suggest alternatives?
I think you should try advanced update. Your flexibility and what
you can do are limited by your dreams. A couple delicious code:
```d
import object, std.container;
struct A
{
double val;
bool isBig;
}
void main()
{
alias DListOfA = DList!A;
DListOfA returnVal;
//DListOfA[string] temp;/*
DListOfA[string] temp = [
"a": DListOfA( A(0) )
];//*/
auto a = A(6, true); // replacement element
temp.update("a", {
return DListOfA( A(0) ); // not updated: unsucceeded but
initialized
}, (ref DListOfA v) {
v = DListOfA( a ); // existing v has been replaced
returnVal = v;
assert(returnVal.front == a);
});
assert(is(typeof(temp["a"]) == DList!A));
}
```
SDB at 79
More information about the Digitalmars-d-learn
mailing list