https://issues.dlang.org/show_bug.cgi?id=19904
[email protected] changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected] --- Comment #1 from [email protected] --- (In reply to Manu from comment #0) > Note there is no `forward!args` then it is passed to `emplaceRef`. This > causes the arguments to be unnecessarily copied, potentially executing a > bunch of copy code. No copy code should be executed. The `auto ref` param will be a ref for an lvalue arg, and a moved bitcopy for an rvalue arg (D move semantics - arg isn't destructed and param's postblit is skipped, but a memcpy is performed). emplaceRef uses `auto ref Args` too. So when calling it in emplace() with its (lvalue) parameters as arguments, they are passed by reference. --
