<div dir="auto"><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon., 2 Sep. 2019, 6:10 pm Suleyman via Digitalmars-d, <<a href="mailto:digitalmars-d@puremagic.com">digitalmars-d@puremagic.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I updated the POC.<br>
<br>
You can now declare the move constructor & move opAssing like the <br>
following:<br>
<br>
```<br>
struct S<br>
{<br>
     this(ref S) @move {}     // move constructor<br>
     opAssign(ref S) @move {} // move opAssign<br>
}<br>
```<br>
<br>
Or with rvalue ref:<br>
<br>
```<br>
struct S<br>
{<br>
     this(@rvalue ref S) {}     // move constructor<br>
     opAssign(@rvalue ref S) {} // move opAssign<br>
}<br>
```<br>
<br>
All implementations use rvalue ref internally. It's just a matter <br>
of exposing in the language it or not.<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Nice work!</div><div dir="auto">I definitely think it needs to be on the argument and not on the method, or it can't be used on functions that take more than one argument.</div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
</blockquote></div></div></div>