<div dir="ltr"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, 27 Feb 2024 at 22:16, Manu <<a href="mailto:turkeyman@gmail.com">turkeyman@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, 27 Feb 2024 at 18:01, Max Samukha via Digitalmars-d <<a href="mailto:digitalmars-d@puremagic.com" target="_blank">digitalmars-d@puremagic.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Tuesday, 27 February 2024 at 07:20:46 UTC, Walter Bright wrote:<br>
<br>
> We do have a DIP on move semantics I wrote a while back:<br>
><br>
> <a href="https://github.com/dlang/DIPs/blob/master/DIPs/DIP1040.md" rel="noreferrer" target="_blank">https://github.com/dlang/DIPs/blob/master/DIPs/DIP1040.md</a><br>
><br>
> but other demands always seem to get in the way.<br>
<br>
ImportC was not a demand!<br></blockquote><div><br></div><div>👆👆👆 <br></div><div><br></div><div>I've been really hammering the importance of this issue for <i>at least</i> 10 years. I'm so tired of hearing myself rant, I'm just way done. I'm still as convinced as ever that the single most important thing you or anybody could be doing for the language, is fixing the move hole.</div><div></div>I'd like to be on the DIP review panel. There are several issues that stand out to me, which I think I'll need to sleep on to digest.</div><div class="gmail_quote"><br></div><div class="gmail_quote">@value for extern(C++) is a gigantic breaking change. Approaching it from that angle is an interesting idea, but I wonder if it could be really noisy. Most code passes struct/class by ref in C++; by-val structs are fairly rare, so the idea might actually work out.</div><div class="gmail_quote"><br></div><div class="gmail_quote"></div><div class="gmail_quote">If symmetry or someone has a small budget, we should fly a small group of key individuals into a small room, lock the doors for a few days, and just get it done.<br></div></div></blockquote><div><br></div><div>I'd like to see the DIP address this idiom (which Scott Meyers termed a 'universal reference'), which is ESSENTIAL in extern(C++) and must be covered or practically no C++ code can ever be represented:</div><div>  template<T> void fun(T&& universalRef);</div><div>In this case; the template will be instantiated as `Ty&&` or `const Ty&` depending on the rvalue-ness of the argument supplied at the call site.<br></div><div></div><div><br></div><div>I think `auto ref` needs to be covered by the DIP, and probably considered with respect to this point.<br></div></div></div>